>本教程提供了一個綜合指南,用於React Router V6,這是用於React應用程序的領先路由庫。 了解如何在您的React項目中有效管理URL和導航。
密鑰學習點:
<route></route>
><link>
高級路由技術:useNavigate
React在具有多個視圖(頁面)的構建動態Web應用程序方面表現出色。 與傳統的多頁應用程序不同,導航不應重新加載整個頁面。 相反,視圖應在現有頁面中順利進行。 React路由器聲明地實現了這一目標,從而確保了無縫的用戶體驗。 用戶期望: 每個視圖的
唯一的URL:
允許書籤(例如,www.example.com/products
標準瀏覽器導航應按預期工作。 example.com/products/shoes/101
和其他React路由器API,使路由易於實現。
><Route path="/about" element={<About />} />
重要說明:<Route>
> React Router是由Remix軟件維護的第三方庫,而不是官方的Facebook/Meta產品。 <Route>
<Link>
概述:
此教程封面:
>使用NPM設置React Router。> 基本路由概念。
嵌套路由。帶有路徑參數的動態嵌套路由。
>您需要安裝node.js。 如果沒有,請從官方Node.js網站下載。 考慮使用版本管理器進行更輕鬆的node.js管理。 NPM(Node Package Manager)與node.js捆綁在一起。 驗證安裝:
<Route path="/about" element={<About />} />
>使用Create React App:
node -v npm -v
npx create-react-app react-router-demo cd react-router-demo
npm install react-router-dom
>。
http://localhost:3000/
我們將創建一個具有三個視圖的應用程序:家庭,類別和產品。
BrowserRouter
每個路由器都會創建一個管理導航堆棧的歷史記錄對象。 更改位置觸發重新渲染。 HashRouter
(掛鉤)為程序化導航提供了BrowserRouter
函數。
npm start
提供導航,而沒有頁面重新加載。 useNavigate
navigate
> update
這設置了基本的導航和路由。 <Route>
<Link>
App.js
嵌套路由將
// src/index.js import { BrowserRouter } from 'react-router-dom'; // ... root.render( <React.StrictMode> <BrowserRouter> <App /> </BrowserRouter> </React.StrictMode> );
修改
:
創建:<Route>
<Route>
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> ); }
>使用路徑參數創建動態路由。 將尾隨的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> ); }
> update<Outlet>
:
參數使用
>。 *
保護路線:useParams
進行程序化重定向並創建一個自定義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>;
::productId
Product
useParams
>添加一個
到中以保護>路由。 請記住原始響應中提到的安全考慮。
>useNavigate
React Router V6.4及以後:PrivateRoute
>
>
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 ...
>本教程提供了React Router V6的全面概述,涵蓋了基本和高級路由概念。 請記住要查閱官方的React Router文檔以獲取最新信息和詳細信息。
>以上是React路由器V6:初學者指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!