Dieses Tutorial bietet einen umfassenden Leitfaden zum React Router V6, der führenden Routing -Bibliothek für React -Anwendungen. Erfahren Sie, wie Sie URLs und Navigation in Ihren React -Projekten effizient verwalten können.
Schlüssellernen:
<routes></routes>
, <route></route>
und <link>
erstellen, einschließlich der Verwendung von Pfadparametern für flexibler Routing. useNavigate
und die neuesten Verbesserungen in React Router v6.4, sodass Sie anspruchsvolle Routing -Lösungen für moderne React -Anwendungen aufbauen können . Einführung:
reagieren hervorragende Leistungen beim Erstellen dynamischer Webanwendungen mit mehreren Ansichten (Seiten). Im Gegensatz zu herkömmlichen mehrseitigen Apps sollte die Navigation die gesamte Seite nicht neu laden. Stattdessen sollten die Ansichten innerhalb der vorhandenen Seite reibungslos rendern. React Router erreicht dies deklarativ und stellt eine nahtlose Benutzererfahrung sicher. Benutzer erwarten:
www.example.com/products
). example.com/products/shoes/101
).
<Route path="/about" element={<About />} />
Komponenten können überall in der Struktur Ihrer Anwendung platziert werden. Die Einfachheit von Komponenten wie <Route>
, <Route>
und anderen React -Router -APIs erleichtert das Routing leicht zu implementieren. <Link>
Wichtiger Hinweis: React Router ist eine von der Remix-Software verwaltete Bibliothek von Drittanbietern, kein offizielles Facebook/Meta-Produkt.
Übersicht:
Dieses Tutorial Covers:
Einrichten von React Router:
Sie benötigen node.js installiert. Wenn nicht, laden Sie es von der offiziellen Node.js -Website herunter. Erwägen Sie, einen Versionsmanager für das einfachere Node.js -Management zu verwenden. NPM (Node Package Manager) ist mit node.js. Überprüfen Sie die Installation:
<Route path="/about" element={<About />} />
Erstellen eines neuen React -Projekts mit React App Create React App:
node -v npm -v
React Router DOM installieren:
npx create-react-app react-router-demo cd react-router-demo
Starten Sie den Entwicklungsserver:
npm install react-router-dom
Ihre React -App mit React Router läuft jetzt unter http://localhost:3000/
.
React Router Grundlagen:
Wir erstellen eine App mit drei Ansichten: Home, Kategorien und Produkte.
Wickeln Sie Ihre Haupt -App -Komponente mit einem Router ein: BrowserRouter
oder HashRouter
. BrowserRouter
(unter Verwendung der HTML5 -Geschichte -API) wird im Allgemeinen für sauberere URLs bevorzugt:
npm start
Jeder Router erstellt ein Verlaufsobjekt, das den Navigationsstapel verwaltet. Änderungen des Standortauslöser-Neuauflagens. useNavigate
(Hook) liefert eine navigate
-Funktion für die programmatische Navigation.
<Route>
rendert UI, wenn der Ort mit dem Pfad übereinstimmt. <Link>
Bietet Navigation ohne Seiten -Reloads.
update App.js
:
// src/index.js import { BrowserRouter } from 'react-router-dom'; // ... root.render( <React.StrictMode> <BrowserRouter> <App /> </BrowserRouter> </React.StrictMode> );
Auf diese Weise werden grundlegende Navigation und Routing festgelegt.
verschachteltes Routing:
Nestrouten durch Platzierung <Route>
Komponenten in andere <Route>
-Komponenten. Dies spiegelt die verschachtelte URL -Struktur wider.
modifizieren Sie App.js
:
import { Link, Route, Routes } from 'react-router-dom'; // ... component definitions for Home, Categories, Products ... export default function App() { return ( <div> <nav> <ul> <li><Link to="/">Home</Link></li> <li><Link to="/categories">Categories</Link></li> <li><Link to="/products">Products</Link></li> </ul> </nav> <Routes> <Route path="/" element={<Home />} /> <Route path="/categories" element={<Categories />} /> <Route path="/products" element={<Products />} /> </Routes> </div> ); }
erstellen Categories.js
:
import { Link, Route, Routes } from 'react-router-dom'; import { Categories, Desktops, Laptops } from './Categories'; // Import nested route components // ... other components ... export default function App() { return ( <div> {/* ... navigation ... */} <Routes> <Route path="/" element={<Home />} /> <Route path="/categories" element={<Categories />}> <Route path="desktops" element={<Desktops />} /> <Route path="laptops" element={<Laptops />} /> </Route> <Route path="/products/*" element={<Products />} /> {/* Note the trailing * */} </Routes> </div> ); }
Die <Outlet>
-Komponente rendert untergeordnete Routen innerhalb der übergeordneten Route.
Dynamisches verschachteltes Routing:
Verwenden Sie Pfadparameter, um dynamische Routen zu erstellen. Fügen Sie der übergeordneten Route eine nachverfolgende *
hinzu, um untergeordnete Routen zu ermöglichen. Verwenden Sie useParams
, um auf Parameter zuzugreifen.
update Products.js
:
import { Link, Outlet } from 'react-router-dom'; export const Categories = () => ( <div> <h2>Categories</h2> <nav> <ul> <li><Link to="desktops">Desktops</Link></li> <li><Link to="laptops">Laptops</Link></li> </ul> </nav> <Outlet /> </div> ); export const Desktops = () => <h3>Desktop PC Page</h3>; export const Laptops = () => <h3>Laptops Page</h3>;
auf den Parameter :productId
wird in der Product
-Komponente mit useParams
.
Schutzrouten:
Verwenden Sie useNavigate
für die programmatische Umleitung und erstellen Sie eine benutzerdefinierte PrivateRoute
-Komponente.
erstellen PrivateRoute.js
:
// ... (import statements and productData) ... const Products = () => ( <div> <h2>Products</h2> <ul> {/* ... linkList (generated from productData) ... */} </ul> <Routes> <Route path=":productId" element={<Product data={productData} />} /> <Route index element={<p>Please select a product.</p>} /> </Routes> </div> ); // ... Product component ...
Fügen Sie eine Login
-Komponente hinzu und integrieren Sie PrivateRoute
in App.js
, um die /admin
-Route zu schützen. Denken Sie an die in der ursprünglichen Antwort genannten Sicherheitsüberlegungen.
Reagieren Sie den Router v6.4 und darüber hinaus:
reagieren Sie Router v6.4 Einführte Datenbelastungs- und Mutations -APIs (inspiriert von Remix). Diese APIs vereinfachen das Abholen und Verwalten von Daten innerhalb von Routen mithilfe von Ladern und Aktionen. Dieser Abschnitt würde eine separate, detailliertere Erklärung benötigen.
Zusammenfassung:
Dieses Tutorial bot einen umfassenden Überblick über React Router V6, das grundlegende und erweiterte Routing -Konzepte abdeckt. Denken Sie daran, die offizielle React-Router-Dokumentation für die aktuellsten Informationen und Details zu konsultieren.
Das obige ist der detaillierte Inhalt vonReact Router V6: Ein Anfängerführer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!