ReactJS - BrowserRouter: Ein Anfängerleitfaden zum Routing in React
Hallo da draußen, ambitionierte React-Entwickler! Heute begeben wir uns auf eine aufregende Reise in die Welt des Routings in React-Anwendungen. Keine Sorge, wenn du neu im Programmieren bist; ich werde dein freundlicher Guide sein und alles Schritt für Schritt erklären. Also hol dir eine Tasse Kaffee und tauchen wir ein!
Router-Konzepte
Was ist Routing?
Stell dir vor, du bist in einer großen Bibliothek. Du möchtest ein bestimmtes Buch finden, aber du weißt nicht, wo es ist. Da kommt der Bibliothekskatalog ganz praktisch. Er sagt dir genau, auf welcher Regal du schauen musst. In Webanwendungen funktioniert Routing ähnlich. Es ist wie eine Karte, die deiner App sagt, welches Komponente basierend auf der URL angezeigt werden soll.
Warum brauchen wir Routing?
Angenommen, du baust eine persönliche Website mit verschiedenen Seiten: Home, Über mich und Kontakt. Ohne Routing müsstest du manuell Komponenten anzeigen und ausblenden, basierend auf Benutzeraktionen. Das ist mühsam und fehleranfällig. Routing automatisiert diesen Prozess und macht deine App organisierter und benutzerfreundlicher.
BrowserRouter im Einsatz
In der React-Welt haben wir ein fantastisches Werkzeug namens BrowserRouter
. Es ist Teil der react-router-dom
Bibliothek und hilft uns, Routing in unseren React-Anwendungen zu implementieren. Denk daran als deinen persönlichen Bibliothekar, der immer bereit ist, Benutzer zum richtigen "Buch" (oder in unserem Fall, Komponente) zu führen.
Wie man Router anwendet
Nun, da wir das Konzept verstanden haben, lassen wir uns mit ein wenig Code beschäftigen!
Schritt 1: Installation
Zuerst müssen wir das react-router-dom
Paket installieren. Öffne dein Terminal und führe aus:
npm install react-router-dom
Schritt 2: BrowserRouter einrichten
Lassen wir mit dem Wrappen unseres Haupt-App-Komponenten mit BrowserRouter beginnen. So geht's:
import React from 'react';
import { BrowserRouter as Router } from 'react-router-dom';
import App from './App';
const Root = () => (
<Router>
<App />
</Router>
);
export default Root;
In diesem Beispiel importieren wir BrowserRouter
und benennen es für die Einfachheit in Router
um. Wir wickeln dann unseren App
Komponenten mit Router
ein. Dies richtet den Routing-Kontext für unsere gesamte Anwendung ein.
Schritt 3: Routen definieren
Jetzt definieren wir einige Routen in unserer App
Komponente:
import React from 'react';
import { Route, Switch } from 'react-router-dom';
import Home from './components/Home';
import About from './components/About';
import Contact from './components/Contact';
const App = () => (
<div>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
</Switch>
</div>
);
export default App;
Lassen wir das auseinandernehmen:
- Wir importieren
Route
undSwitch
ausreact-router-dom
. -
Switch
stellt sicher, dass nur eine Route gleichzeitig gerendert wird. - Jeder
Route
Komponente definiert eine Zuordnung zwischen einem URL-Pfad und einer React-Komponente. - Die
exact
Eigenschaft auf der Home-Route stellt sicher, dass sie nur auf den exakten Pfad "/" passt.
Schritt 4: Navigation erstellen
Jetzt fügen wir unserer App einige Navigation hinzu:
import React from 'react';
import { Link } from 'react-router-dom';
const Navigation = () => (
<nav>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">Über mich</Link></li>
<li><Link to="/contact">Kontakt</Link></li>
</ul>
</nav>
);
export default Navigation;
Hier verwenden wir das Link
Komponente aus react-router-dom
. Es ist wie ein <a>
Tag, aber es verhindert, dass die Seite bei der Navigation neu geladen wird.
Schritt 5: Alles zusammenfügen
Lassen wir unseren App
Komponenten aktualisieren, um die Navigation zu enthalten:
import React from 'react';
import { Route, Switch } from 'react-router-dom';
import Navigation from './components/Navigation';
import Home from './components/Home';
import About from './components/About';
import Contact from './components/Contact';
const App = () => (
<div>
<Navigation />
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
</Switch>
</div>
);
export default App;
Und daar hast du es! Eine grundlegende React-Anwendung mit Routing eingerichtet.
Fortgeschrittene Routing-Techniken
Nun, da wir die Grundlagen abgedeckt haben, schauen wir uns einige fortgeschrittene Techniken an:
1. URL-Parameter
Manchmal möchtest du Daten über die URL übergeben. Zum Beispiel eine Benutzerprofilseite:
<Route path="/user/:id" component={UserProfile} />
In deinem UserProfile
Komponenten kannst du den id
Parameter如此 zugreifen:
import { useParams } from 'react-router-dom';
const UserProfile = () => {
let { id } = useParams();
return <h1>Benutzerprofil für Benutzer {id}</h1>;
};
2. Geschachtelte Routen
Du kannst Routen in Komponenten verschachteln. Dies ist nützlich für komplexe Layouts:
const App = () => (
<div>
<Navigation />
<Switch>
<Route exact path="/" component={Home} />
<Route path="/users" component={Users} />
</Switch>
</div>
);
const Users = () => (
<div>
<h1>Benutzer</h1>
<Switch>
<Route exact path="/users" component={UserList} />
<Route path="/users/:id" component={UserProfile} />
</Switch>
</div>
);
3. Programmatische Navigation
Manchmal möchtest du programmatisch navigieren, wie nach einer Formularübersendung:
import { useHistory } from 'react-router-dom';
const LoginForm = () => {
let history = useHistory();
const handleSubmit = () => {
// ... Login-Logik behandeln
history.push('/dashboard');
};
return (
<form onSubmit={handleSubmit}>
{/* Formularfelder */}
</form>
);
};
Routing-Methode-Tabelle
Hier ist eine praktische Tabelle, die die Haupt-routing-Methoden zusammenfasst, die wir besprochen haben:
Methode | Zweck | Beispiel |
---|---|---|
<BrowserRouter> |
Wraps the app to enable routing | <BrowserRouter><App /></BrowserRouter> |
<Route> |
Defines a route | <Route path="/about" component={About} /> |
<Switch> |
Ensures only one route renders | <Switch><Route ... /><Route ... /></Switch> |
<Link> |
Creates a link to a route | <Link to="/about">Über mich</Link> |
useParams() |
Accesses URL parameters | let { id } = useParams(); |
useHistory() |
Programmatic navigation | history.push('/dashboard'); |
Und daar hast du es, Leute! Wir haben die Grundlagen des Routings in React mit BrowserRouter durchlaufen. Denke daran, Übung macht den Meister, also fürchte dich nicht, diese Konzepte in deinen eigenen Projekten auszuprobieren.
Frohes Coden und möge deine Routen dich immer zum richtigen Komponenten führen!
Credits: Image by storyset