BrowserRouter ·
Routes / Route ·
Link / NavLink ·
useParams / useNavigate ·
Nested Routes / Outlet ·
useLocation / useMatch
React Router ist die Standard-Bibliothek für Routing in React-Anwendungen. Sie ermöglicht die Navigation zwischen verschiedenen Seiten, ohne dass der Browser neu geladen wird.
BrowserRouter ist der Wrapper für die gesamte Routing-Konfiguration. Er verwendet die HTML5 History-API für saubere URLs ohne Hash.
BrowserRouter benötigt eine korrekte Server-Konfiguration (Fallback auf index.html). HashRouter funktioniert ohne Server-Konfiguration, ist aber weniger SEO-freundlich.
Routes und Route definieren die verfügbaren Pfade in Ihrer Anwendung. Die path-Eigenschaft beschreibt die URL, element die anzuzeigende Komponente.
| Muster | Beschreibung | Beispiel |
|---|---|---|
| static | Fester Pfad | /about |
| :param | Dynamischer Parameter | /users/:id → /users/42 |
| * | Wildcard (alle Pfade) | /* → Fallback-Route |
| ? (optional) | Optionaler Parameter | /post/:id? → /post oder /post/1 |
| index | Standard-Route in verschachtelten Routen | <Route index element={...} /> |
Route-Komponenten in Routes ist wichtig – spezifischere Pfade sollten vor allgemeineren stehen.
Link erzeugt einen HTML-Link, der die Navigation innerhalb der React-Anwendung ermöglicht, ohne die Seite neu zu laden. NavLink ist eine spezielle Version, die den aktiven Zustand erkennt.
NavLink bietet die isActive- und isPending-Funktionen für die Styling-Entscheidung – perfekt für Navigationsmenüs mit aktiven Links.
Hooks von React Router ermöglichen den Zugriff auf Routing-Informationen und die Navigation innerhalb von Komponenten.
| Hook | Beschreibung | Beispiel |
|---|---|---|
| useParams | Dynamische URL-Parameter | { id: '42' } |
| useNavigate | Programmatische Navigation | navigate('/about') |
| useLocation | Aktuelles Location-Objekt | { pathname, search, state } |
| useMatch | Prüft, ob Pfad matcht | useMatch('/about') |
| useOutlet | Outlet-Context für verschachtelte Routen | const outlet = useOutlet() |
| useSearchParams | Query-Parameter | [searchParams, setSearchParams] |
useNavigate kann auch mit -1 für "zurück" verwendet werden (navigate(-1)). useLocation enthält das state-Objekt, das mit Link übergeben wurde.
Nested Routes ermöglichen es, Routen innerhalb anderer Routen zu verschachteln. Das Outlet-Element markiert die Stelle, an der die Unterroute gerendert wird.
Outlet.
Fortgeschrittene Konzepte wie Redirects, Lazy Loading und geschützte Routen erweitern die Funktionalität von React Router.
lazy() mit Suspense für eine nahtlose Benutzererfahrung.
BrowserRouter
Routes
Link
useParams
Outlet
lazy
<Route path="/users/:id" element={<User />} /> ·
const { id } = useParams() ·
const navigate = useNavigate()