嵌套路由是React Router中实现多层级页面结构的核心方式,常用于权限管理、模块化布局等场景。通过嵌套路由可以将复杂页面拆分为可复用的子组件,提升代码组织效率。
基本实现方式 🛠️
- 定义嵌套路由结构
使用<Route>
包裹子路由,示例:<Route path="/dashboard" element={<Dashboard />}> <Route path="profile" element={<Profile />} /> <Route path="settings" element={<Settings />} /> </Route>
- 动态路由匹配
通过:id
参数实现动态路由:<Route path="/user/:id" element={<UserDetail />}> <Route path="posts" element={<Posts />} /> </Route>
- 路由嵌套与组件渲染
子路由会自动渲染在父路由组件的<Outlet />
位置
实际应用场景 🌐
- 权限控制:通过路由层级限制访问权限
- 模块化布局:将公共组件(如侧边栏)作为父路由容器
- 数据关联:子路由可访问父路由传参(通过
useParams
)
常见问题解答 ❓
Q: 嵌套路由如何传递参数?
A: 使用useParams
钩子获取父路由参数,示例:const { id } = useParams();
Q: 如何实现路由懒加载?
A: 使用lazy
和Suspense
组合,示例:const LazyProfile = lazy(() => import('./Profile')); <Route path="profile" element={<LazyProfile />} />
扩展学习 🔍
开发技巧 💡
- 使用
createBrowserRouter
替代旧版BrowserRouter
- 通过
<Outlet />
实现子路由容器化 - 利用
useNavigate
进行编程式导航