動態路由 是指在應用程式中建立依賴資料或使用者互動的路由的能力,從而允許路由動態變更。這使得可以根據使用者輸入、API 回應或動態 URL 參數呈現不同的視圖。
在建立無法預先定義路由的應用程式時,例如當頁面內容取決於從 API 取得的資料或某些路由取決於應用程式的狀態或操作時,動態路由特別有用。
React Router 是在 React 應用程式中實現路由的首選函式庫。它允許路由路徑和組件根據資料或條件進行更改,從而使動態路由變得簡單。
動態路由參數:
程式化導航:
條件路由:
延遲載入路線:
在此範例中,我們將示範如何使用動態參數建立路由並根據 URL 有條件地渲染它們。
import React from 'react'; import { BrowserRouter, Routes, Route, Link, useParams } from 'react-router-dom'; const UserProfile = () => { const { userId } = useParams(); // Access dynamic parameter from the URL return <h2>User Profile for user: {userId}</h2>; }; const App = () => { return ( <BrowserRouter> <nav> <ul> <li><Link to="/user/1">User 1</Link></li> <li><Link to="/user/2">User 2</Link></li> </ul> </nav> <Routes> <Route path="/user/:userId" element={<UserProfile />} /> {/* Dynamic route */} </Routes> </BrowserRouter> ); }; export default App;
import React from 'react'; import { BrowserRouter, Routes, Route, useNavigate } from 'react-router-dom'; const Home = () => { const navigate = useNavigate(); const goToUserProfile = (id) => { navigate(`/user/${id}`); }; return ( <div> <h2>Home Page</h2> <button onClick={() => goToUserProfile(1)}>Go to User 1</button> <button onClick={() => goToUserProfile(2)}>Go to User 2</button> </div> ); }; const UserProfile = ({ userId }) => { return <h2>User Profile for user: {userId}</h2>; }; const App = () => { return ( <BrowserRouter> <Routes> <Route path="/" element={<Home />} /> <Route path="/user/:userId" element={<UserProfile />} /> </Routes> </BrowserRouter> ); }; export default App;
import React from 'react'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; const PrivateRoute = ({ isAuthenticated, children }) => { return isAuthenticated ? children : <Navigate to="/login" />; }; const Dashboard = () => <h2>Dashboard - Only accessible when logged in</h2>; const Login = () => <h2>Login Page</h2>; const App = () => { const isAuthenticated = false; // Change this value to test return ( <BrowserRouter> <Routes> <Route path="/login" element={<Login />} /> <Route path="/dashboard" element={ <PrivateRoute isAuthenticated={isAuthenticated}> <Dashboard /> </PrivateRoute> } /> </Routes> </BrowserRouter> ); }; export default App;
import React, { Suspense } from 'react'; import { BrowserRouter, Routes, Route } from 'react-router-dom'; // Lazy load components const Home = React.lazy(() => import('./Home')); const Dashboard = React.lazy(() => import('./Dashboard')); const App = () => { return ( <BrowserRouter> <Suspense fallback={<div>Loading...</div>}> <Routes> <Route path="/" element={<Home />} /> <Route path="/dashboard" element={<Dashboard />} /> </Routes> </Suspense> </BrowserRouter> ); }; export default App;
React 中的動態路由允許更靈活和互動的應用程式。透過使用動態路由參數、編程序導航、條件路由和延遲加載,您可以創建功能強大的 React 應用程序,這些應用程式可以根據用戶互動或應用程式狀態進行調整。 React Router 是一個強大的工具,可輕鬆在 React 中實現動態路由,讓您輕鬆建立複雜且可擴展的應用程式。
以上是掌握 React 中的動態路由:建立靈活且可擴展的應用程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!