Zielplattform
- react-router:
react-router
ist plattformunabhängig und kann in jeder React-Anwendung verwendet werden, einschließlich mobiler und serverseitiger Anwendungen. - react-router-dom:
react-router-dom
ist speziell für Webanwendungen konzipiert und nutzt DOM-spezifische Funktionen, um die Navigation und das Routing zu verbessern.
DOM-Interaktion
- react-router:
react-router
interagiert nicht direkt mit dem DOM, was es für serverseitige Anwendungen geeignet macht. - react-router-dom:
react-router-dom
bietet Komponenten wie<Link>
und<NavLink>
, die die Interaktion mit dem DOM erleichtern und die Navigation innerhalb der Anwendung verbessern.
Zusätzliche Komponenten
- react-router:
react-router
bietet die grundlegenden Routing-Funktionen, einschließlich<Route>
und<Switch>
, aber keine DOM-spezifischen Komponenten. - react-router-dom:
react-router-dom
bietet zusätzliche Komponenten wie<BrowserRouter>
,<HashRouter>
und<Link>
, die speziell für Webanwendungen entwickelt wurden.
Verwendung von Hooks
- react-router:
react-router
bietet Hooks wieuseRouteMatch
unduseParams
, die in jeder React-Anwendung verwendet werden können. - react-router-dom:
react-router-dom
bietet zusätzliche Hooks wieuseHistory
unduseLocation
, die speziell für die Navigation in Webanwendungen entwickelt wurden.
Beispielcode
- react-router:
Routing mit
react-router
import { BrowserRouter as Router, Route } from 'react-router'; function App() { return ( <Router> <Route path="/" component={Home} /> <Route path="/about" component={About} /> </Router> ); }
- react-router-dom:
Routing mit
react-router-dom
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'; function App() { return ( <Router> <nav> <Link to="/">Home</Link> <Link to="/about">About</Link> </nav> <Route path="/" exact component={Home} /> <Route path="/about" component={About} /> </Router> ); }