返回顶部
r

react-router-v7

React Router v7 best practices for data-driven routing. Use when implementing routes, loaders, actions, Form components, fetchers, navigation guards, protected routes, or URL search params. Triggers on createBrowserRouter, RouterProvider, useLoaderData, useActionData, useFetcher, NavLink, Outlet.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.0
安全检测
已通过
76
下载量
0
收藏
概述
安装方式
版本历史

react-router-v7

# React Router v7 Best Practices ## Quick Reference **Router Setup (Data Mode)**: ```tsx import { createBrowserRouter, RouterProvider } from "react-router"; const router = createBrowserRouter([ { path: "/", Component: Root, ErrorBoundary: RootErrorBoundary, loader: rootLoader, children: [ { index: true, Component: Home }, { path: "products/:productId", Component: Product, loader: productLoader }, ], }, ]); ReactDOM.createRoot(root).render(<RouterProvider router={router} />); ``` **Framework Mode (Vite plugin)**: ```ts // routes.ts import { index, route } from "@react-router/dev/routes"; export default [ index("./home.tsx"), route("products/:pid", "./product.tsx"), ]; ``` ## Route Configuration ### Nested Routes with Outlets ```tsx createBrowserRouter([ { path: "/dashboard", Component: Dashboard, children: [ { index: true, Component: DashboardHome }, { path: "settings", Component: Settings }, ], }, ]); function Dashboard() { return ( <div> <h1>Dashboard</h1> <Outlet /> {/* Renders child routes */} </div> ); } ``` ### Dynamic Segments and Splats ```tsx { path: "teams/:teamId" } // params.teamId { path: ":lang?/categories" } // Optional segment { path: "files/*" } // Splat: params["*"] ``` ## Key Decision Points ### Form vs Fetcher **Use `<Form>`**: Creating/deleting with URL change, adding to history **Use `useFetcher`**: Inline updates, list operations, popovers - no URL change ### Loader vs useEffect **Use loader**: Data before render, server-side fetch, automatic revalidation **Use useEffect**: Client-only data, user-interaction dependent, subscriptions ## Additional Documentation - **Data Loading**: See [references/loaders.md](references/loaders.md) for loader patterns, parallel loading, search params - **Mutations**: See [references/actions.md](references/actions.md) for actions, Form, fetchers, validation - **Navigation**: See [references/navigation.md](references/navigation.md) for Link, NavLink, programmatic nav - **Advanced**: See [references/advanced.md](references/advanced.md) for error boundaries, protected routes, lazy loading ## Mode Comparison | Feature | Framework Mode | Data Mode | Declarative Mode | |---------|---------------|-----------|------------------| | Setup | Vite plugin | `createBrowserRouter` | `<BrowserRouter>` | | Type Safety | Auto-generated types | Manual | Manual | | SSR Support | Built-in | Manual | Limited | | Use Case | Full-stack apps | SPAs with control | Simple/legacy |

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 react-router-v7-1775977982 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 react-router-v7-1775977982 技能

通过命令行安装

skillhub install react-router-v7-1775977982

下载 Zip 包

⬇ 下载 react-router-v7 v1.1.0

文件大小: 13.07 KB | 发布时间: 2026-4-13 11:44

v1.1.0 最新 2026-4-13 11:44
- Added comprehensive best practices and quick reference for React Router v7 usage.
- Expanded documentation on route setup, nested routes, dynamic segments, and splats.
- Clarified when to use Forms vs. fetchers, and loader vs. useEffect for data handling.
- Included a mode comparison table covering Framework, Data, and Declarative modes.
- Linked to additional references for data loading, mutations, navigation, and advanced features.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部