React Router 是 React 生态中用于处理路由的主流库,而**嵌套路由(Nested Routes)**则是其核心特性之一。通过嵌套路由,可以实现更清晰的页面结构和组件组织方式,例如在 /dashboard 路径下嵌套 /users/settings 子路由。


📌 什么是嵌套路由?

嵌套路由允许在父路由中定义子路由,形成层级关系。
例如:

<Route path="/dashboard">
  <Route path="/dashboard/users" element={<Users />} />
  <Route path="/dashboard/settings" element={<Settings />} />
</Route>

通过这种结构,可以避免路径冗余(如 /dashboard/users 而非 /dashboard/user/list)。


🧱 实现嵌套路径的步骤

  1. 创建父路由容器
    使用 <Outlet /> 作为子路由的占位符。

    react_router_nested

  2. 定义子路由
    在父路由的 children 中声明子路径和组件。
    示例代码:

    <Route path="/dashboard" element={<Dashboard />}>
      <Route path="users" element={<Users />} />
      <Route path="settings" element={<Settings />} />
    </Route>
    
  3. 使用动态路由参数
    结合 :id 等参数实现更灵活的嵌套。

    nesting_routes


📚 扩展阅读


⚠️ 注意事项

  • 嵌套路由需与 Outlet 配合使用,否则子路由无法渲染
  • 路径层级过深可能导致维护困难,建议控制在 3 层以内
  • 使用 useParams 可获取父路由传递的参数

📝 示例场景

父路径 子路径 对应页面
/app /app/profile 用户个人中心
/blog /blog/post/:id 博客详情页
/admin /admin/logs 管理后台日志页

react_router_nested_example