React Router 路由速查表

React Router 是 React 标准路由库,整理 v6 版本核心 API 和常用模式。

编程语言·共 19 条命令·最后更新 2026-07-19
返回 编程语言

路由配置 4

<BrowserRouter><App /></BrowserRouter>
包裹应用启用路由
<Routes><Route path="/" element={<Home />} /></Routes>
定义路由规则
<Route path="/users/:id" element={<User />} />
动态路由参数
<Route path="*" element={<NotFound />} />
404 兜底路由

导航链接 3

<Link to="/about">About</Link>
声明式导航
<NavLink to="/users" className={({isActive}) => isActive ? "active" : ""}>
激活状态样式
<Navigate to="/login" replace />
编程式重定向

Hooks 6

useNavigate()
获取导航函数
navigate("/dashboard")
跳转到指定路径
navigate(-1)
后退一页
useParams()
获取路由参数 { id: "123" }
useLocation()
获取当前 location 对象
useSearchParams()
获取查询参数 ?q=keyword

嵌套路由 4

<Route path="/dashboard" element={<Dashboard />}>
父路由
<Route index element={<Overview />} />
默认子路由
<Route path="settings" element={<Settings />} />
嵌套子路由
<Outlet />
在父组件渲染子路由

路由守卫 2

function ProtectedRoute({ children }) { return isAuth ? children : <Navigate to="/login" /> }
自定义保护路由组件
<Route path="/dashboard" element={<ProtectedRoute><Dashboard /></ProtectedRoute>} />
应用路由守卫

💡 提示

  • React Router v6 用 Routes 替代了 v5 的 Switch。
  • useNavigate 替代了 v5 的 useHistory。
  • 嵌套路由需要在父组件用 <Outlet /> 渲染子路由。
  • NavLink 可以访问 isActive 判断是否激活,用于样式。
  • 动态参数 :id 用 useParams 获取,查询参数 ?q= 用 useSearchParams。