React Router ist eine Bibliothek zur Handhabung des Routings in React-Anwendungen. Es ermöglicht Ihrer App, zwischen verschiedenen Komponenten und Ansichten zu navigieren, ohne die gesamte Seite neu laden zu müssen, was für ein nahtloses Benutzererlebnis sorgt.
Beginnen Sie mit der Installation von „react-router-dom:“
npm install react-router-dom
Grundlegendes Routing mit BrowserRouter, Routen und Route einrichten:
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; const Home = () => <h2>Home</h2>; const About = () => <h2>About</h2>; const App = () => { return ( <Router> <nav> <Link to="/">Home</Link> <Link to="/about">About</Link> </nav> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> </Routes> </Router> ); }; export default App;
Für komplexere Apps können Sie Routen verschachteln. So richten Sie verschachtelte Routen in einer übergeordneten Komponente ein:
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; const Dashboard = () => <h2>Dashboard Home</h2>; const Profile = () => <h2>Your Profile</h2>; const DashboardLayout = () => { return ( <div> <nav> <Link to="/dashboard">Home</Link> <Link to="/dashboard/profile">Profile</Link> </nav> <Routes> <Route path="/" element={<Dashboard />} /> <Route path="profile" element={<Profile />} /> </Routes> </div> ); }; const App = () => { return ( <Router> <Routes> <Route path="/dashboard/*" element={<DashboardLayout />} /> </Routes> </Router> ); }; export default App;
Dynamisches Routing ermöglicht die Übergabe von Parametern in der URL. So definieren Sie eine dynamische Route und greifen darauf zu:
import { useParams } from 'react-router-dom'; const User = () => { const { id } = useParams(); return <h2>User ID: {id}</h2>; }; const App = () => { return ( <Router> <nav> <Link to="/user/1">User 1</Link> <Link to="/user/2">User 2</Link> </nav> <Routes> <Route path="/user/:id" element={<User />} /> </Routes> </Router> ); }; export default App;
Um geschützte Routen zu implementieren, können Sie eine benutzerdefinierte PrivateRoute-Komponente erstellen:
import { Navigate, Outlet } from 'react-router-dom'; const useAuth = () => { const user = { loggedIn: true }; // Replace with actual auth logic return user && user.loggedIn; }; const PrivateRoute = () => { const isAuth = useAuth(); return isAuth ? <Outlet /> : <Navigate to="/login" />; }; const App = () => { return ( <Router> <Routes> <Route path="/login" element={<Login />} /> <Route path="/dashboard" element={<PrivateRoute />}> <Route path="" element={<Dashboard />} /> </Route> </Routes> </Router> ); }; export default App;
Manchmal möchten Sie möglicherweise programmgesteuert navigieren, beispielsweise nach der Übermittlung eines Formulars. Verwenden Sie den useNavigate-Hook in React Router v6:
import { useNavigate } from 'react-router-dom'; const Login = () => { const navigate = useNavigate(); const handleLogin = () => { // Login logic here... navigate('/dashboard'); }; return ( <div> <h2>Login</h2> <button onClick={handleLogin}>Login</button> </div> ); }; export default Login;
Behandeln Sie 404-Fehler (nicht gefunden), indem Sie eine Catch-All-Route erstellen:
const NotFound = () => <h2>404 - Page Not Found</h2>; const App = () => { return ( <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="*" element={<NotFound />} /> </Routes> </Router> ); }; export default App;
Bei großen Anwendungen können verzögerte Laderouten die Leistung verbessern. So implementieren Sie Lazy Loading mit React.lazy() und Suspense:
import React, { Suspense, lazy } from 'react'; import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; const Home = lazy(() => import('./Home')); const About = lazy(() => import('./About')); const App = () => { return ( <Router> <Suspense fallback={<div>Loading...</div>}> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> </Routes> </Suspense> </Router> ); }; export default App;
Das obige ist der detaillierte Inhalt vonReact Routing beherrschen: Eine vollständige Anleitung zur Navigation in Ihrer Anwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!