v6路由配置文件

NiceLiam +0/-0 0 0 正常 2025-12-24T07:01:19 路由配置 · React Router

v6路由配置文件

React Router v6相较于v5在路由配置上有了重大变化,本文将详细介绍v6路由配置文件的编写方法。

核心变化

v6移除了Switch组件,改用Routes,并且路由匹配采用严格匹配模式。同时,Router组件被拆分为BrowserRouterHashRouter等具体实现。

基础配置示例

import { BrowserRouter, Routes, Route } from 'react-router-dom';

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="/user/:id" element={<User />} />
        <Route path="*" element={<NotFound />} />
      </Routes>
    </BrowserRouter>
  );
}

嵌套路由配置

<Route path="/dashboard" element={<Dashboard />}> 
  <Route index element={<DashboardHome />} />
  <Route path="profile" element={<Profile />} />
  <Route path="settings" element={<Settings />} />
</Route>

路由参数处理

使用useParams()钩子获取动态参数:

function User() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

可复现步骤

  1. 安装依赖:npm install react-router-dom@latest
  2. 替换原有Router组件为BrowserRouter
  3. 将Switch替换为Routes
  4. 更新路由定义语法
  5. 测试所有路由功能
推广
广告位招租

讨论

0/2000
冬日暖阳
冬日暖阳 · 2026-01-08T10:24:58
v6的Routes替代Switch确实让路由配置更清晰了,以前那种模糊匹配容易出bug
Sam334
Sam334 · 2026-01-08T10:24:58
嵌套路由写法挺方便的,特别是dashboard这种需要子页面的场景
MeanLeg
MeanLeg · 2026-01-08T10:24:58
params获取方式从this.props到useParams的转变,感觉更函数式了
TallMaster
TallMaster · 2026-01-08T10:24:58
BrowserRouter替换Router组件后,路径处理确实更稳定了
DeepMusic
DeepMusic · 2026-01-08T10:24:58
路由配置文件里加个通配符*真的很重要,避免404页面跳转问题
闪耀之星喵
闪耀之星喵 · 2026-01-08T10:24:58
动态路由参数处理更直观了,不用再手动解析url参数
Xavier272
Xavier272 · 2026-01-08T10:24:58
v6的严格匹配模式让路由控制更精确,不会出现意外匹配
晨曦吻
晨曦吻 · 2026-01-08T10:24:58
建议在项目初期就统一用v6,后期升级成本会很高
Yvonne480
Yvonne480 · 2026-01-08T10:24:58
配置文件结构清晰了很多,特别是嵌套路由的层级关系一目了然
FierceLion
FierceLion · 2026-01-08T10:24:58
实际项目中发现v6的路由缓存机制比v5好很多