
React Router 是 React 生態系中一個重要的 Library,主要處理 React 應用程式中的路由。開發者可以透過 React Router 建立具有多個視圖的單頁式應用,並通過 URL 導航在它們之間切換。
npm i react-router-dom@6
react-router-dom 中引入 BrowserRouter、Routes 和 Route 這三個元件。import { BrowserRouter, Routes, Route } from "react-router-dom";
import { BrowserRouter, Routes, Route } from "react-router-dom";
function App() {
return (
<BrowserRouter>
<Routes>
<Route />
</Routes>
</BrowserRouter>
)
}
/product 的路由,可以在 Route 元件上設定 path 的屬性為 product,以及 element 屬性指向想要顯示的 Product 元件(別忘了將該元件引入)。import { BrowserRouter, Routes, Route } from "react-router-dom";
import Product from "./pages/Product";
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="product" element={<Product />} />
</Routes>
</BrowserRouter>
)
}
Homepage 元件的 path 屬性是使用斜線 /,表示當使用者訪問根路徑(例如:https://ithelp.ithome.com.tw/ )的時候,將渲染 Homepage 元件。import { BrowserRouter, Routes, Route } from "react-router-dom";
import HomePage from "./pages/HomePage";
import Product from "./pages/Product";
import Pricing from "./pages/Pricing";
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="product" element={<Product />} />
<Route path="pricing" element={<Pricing />} />
</Routes>
</BrowserRouter>
)
}
/abcd),可以透過 * 符號,將使用者導向到自定義元件 PageNotFound。import { BrowserRouter, Routes, Route } from "react-router-dom";
import HomePage from "./pages/HomePage";
import Product from "./pages/Product";
import Pricing from "./pages/Pricing";
import PageNotFound from "./pages/PageNotFound";
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="product" element={<Product />} />
<Route path="pricing" element={<Pricing />} />
<Route path="*" element={<PageNotFound />} />
</Routes>
</BrowserRouter>
)
}
React Router 是專為處理 React 應用程序中的路由而設計。透過 React Router 我們可以更好地組織和管理應用程式的路由邏輯,並提供無縫的使用者導航體驗。