本技能围绕 React Router v7 的数据驱动路由最佳实践展开,面向需要实现路由、数据加载、数据变更、导航与受保护路由的开发场景。
用途 用于在 React Router v7 中组织路由与数据流:通过 loader 在渲染前加载数据,通过 action 与 Form 处理创建、删除等变更,通过 fetcher 处理不改变 URL 的内联更新,并借助嵌套路由与 Outlet 构建布局结构。
主要能力
- 路由配置:Data 模式使用 createBrowserRouter 与 RouterProvider;Framework 模式使用 Vite 插件与 routes.ts 中的 index、route 定义。
- 嵌套路由与 Outlet:父路由渲染 Outlet 以呈现子路由。
- 动态段与 splat:如 teams/:teamId 对应 params.teamId,:lang?/categories 为可选段,files/* 对应 params["*"]。
- 错误边界:路由可配置 ErrorBoundary。
- 数据加载与变更:loader、action、Form、fetcher、useSubmit 等。
- 导航:Link、NavLink 与编程式导航。
- 进阶主题:错误边界、受保护路由、懒加载。
使用方式 资料给出关键决策顺序(Gates),按顺序判断并选择 API:
- Form 与 useFetcher:若必须改变 URL 或历史栈(可书签/分享、返回回到上一屏),使用 <Form> / 路由 action(或 useSubmit + 导航);否则进入下一步。若变更停留在同一路由(内联编辑、弹窗、列表行、地址不变),使用 useFetcher();否则重新检查第一步,可能需要专用 action 路由或向当前 URL 发起 POST。
- loader 与 useEffect:若该路由首次正确渲染(或预期的 Suspense 边界)需要数据,使用 loader(Framework 模式在合适时用 clientLoader);否则进入下一步。若仅在挂载后由用户操作、定时器或订阅触发请求(而非进入路由时),使用 useEffect / 事件处理器;否则优先使用 loader + 重新验证,而不是用 effect 镜像导航。
模式对比
- Framework 模式:Vite 插件搭建,自动生成类型,内置 SSR,适用于全栈应用。
- Data 模式:createBrowserRouter 搭建,类型需手动处理,SSR 需手动实现,适用于需要更多控制的 SPA。
- Declarative 模式:<BrowserRouter> 搭建,类型手动,SSR 支持有限,适用于简单或遗留项目。
适用场景 需要数据驱动路由的 React 应用,包括全栈应用、需要精细控制的 SPA,以及简单或遗留项目。
限制 资料未提供该技能的安装命令、版本要求、收费与价格信息、性能或效果数据,也未提供完整的 API 参考与示例代码之外的实现细节,这些内容暂未提供。