SuperAPI AI 工具集

react-router-v7

前端与建站

查看项目

更新于 10-15 02:54

技能介绍

本技能围绕 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:

  1. Form 与 useFetcher:若必须改变 URL 或历史栈(可书签/分享、返回回到上一屏),使用 <Form> / 路由 action(或 useSubmit + 导航);否则进入下一步。若变更停留在同一路由(内联编辑、弹窗、列表行、地址不变),使用 useFetcher();否则重新检查第一步,可能需要专用 action 路由或向当前 URL 发起 POST。
  2. loader 与 useEffect:若该路由首次正确渲染(或预期的 Suspense 边界)需要数据,使用 loader(Framework 模式在合适时用 clientLoader);否则进入下一步。若仅在挂载后由用户操作、定时器或订阅触发请求(而非进入路由时),使用 useEffect / 事件处理器;否则优先使用 loader + 重新验证,而不是用 effect 镜像导航。

模式对比

  • Framework 模式:Vite 插件搭建,自动生成类型,内置 SSR,适用于全栈应用。
  • Data 模式:createBrowserRouter 搭建,类型需手动处理,SSR 需手动实现,适用于需要更多控制的 SPA。
  • Declarative 模式:<BrowserRouter> 搭建,类型手动,SSR 支持有限,适用于简单或遗留项目。

适用场景 需要数据驱动路由的 React 应用,包括全栈应用、需要精细控制的 SPA,以及简单或遗留项目。

限制 资料未提供该技能的安装命令、版本要求、收费与价格信息、性能或效果数据,也未提供完整的 API 参考与示例代码之外的实现细节,这些内容暂未提供。