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
)。
🧱 实现嵌套路径的步骤
创建父路由容器
使用<Outlet />
作为子路由的占位符。react_router_nested定义子路由
在父路由的children
中声明子路径和组件。
示例代码:<Route path="/dashboard" element={<Dashboard />}> <Route path="users" element={<Users />} /> <Route path="settings" element={<Settings />} /> </Route>
使用动态路由参数
结合:id
等参数实现更灵活的嵌套。nesting_routes
📚 扩展阅读
⚠️ 注意事项
- 嵌套路由需与
Outlet
配合使用,否则子路由无法渲染 - 路径层级过深可能导致维护困难,建议控制在 3 层以内
- 使用
useParams
可获取父路由传递的参数
📝 示例场景
父路径 | 子路径 | 对应页面 |
---|---|---|
/app |
/app/profile |
用户个人中心 |
/blog |
/blog/post/:id |
博客详情页 |
/admin |
/admin/logs |
管理后台日志页 |
react_router_nested_example