本页面介绍了 React Router 的核心概念,涵盖了路由的工作方式、涉及的主要组件以及它们如何交互以实现 React 应用程序中的导航。有关特定包架构的信息,请参阅包和结构。
React Router 的核心是几个关键组件,它们协同工作以管理您应用程序中的导航和渲染。
来源:packages/react-router/index.ts78-118 packages/react-router/lib/components.tsx175-207 packages/react-router/lib/dom/lib.tsx129-222
React Router 提供了两种主要的路由方式
数据路由(v6.4 引入):通过 loader 和 action 支持数据加载和修改。
createBrowserRouter() 等函数创建,并使用 <RouterProvider> 渲染。组件路由:传统的通过组件组合实现路由的方式。
<BrowserRouter>、<Routes> 和 <Route> 等组件。来源:packages/react-router/lib/components.tsx175-207 packages/react-router/lib/dom/lib.tsx175-222
路由定义了 URL 如何映射到应用程序中的组件。可以通过两种方式定义它们:
来源:packages/react-router/lib/context.ts25-65 packages/react-router/lib/components.tsx615-728
当用户导航到某个 URL 时,React Router 会
来源:packages/react-router/lib/components.tsx425-620 packages/react-router/lib/hooks.tsx425-620
Outlet 组件是一个占位符,用于渲染匹配的子路由。
来源:packages/react-router/lib/hooks.tsx311-329 packages/react-router/lib/components.tsx623-659
React Router 提供了几种在路由之间导航的方法。
来源:packages/react-router/lib/hooks.tsx72-302 packages/react-router/lib/components.tsx560-621 packages/react-router/lib/dom/lib.tsx432-609
Link 组件创建一个 <a> 标签,可在不重新加载整个页面的情况下导航。
点击时,它会
来源:packages/react-router/lib/dom/lib.tsx432-609 docs/api/components/Link.md1-179
useNavigate hook 提供程序化导航。
来源:packages/react-router/lib/hooks.tsx226-302
路由中的动态段可以捕获 URL 中的值。
来源:packages/react-router/lib/hooks.tsx347-355
React Router 构建在浏览器的 History API 之上以管理导航。
useLocation hook 提供对当前位置的访问。
来源:packages/react-router/lib/hooks.tsx133-142 packages/react-router/lib/components.tsx227-395
数据路由(v6.4 引入)增加了对数据加载和修改的支持。
来源:packages/react-router/__tests__/data-memory-router-test.tsx536-623
Loader 在路由渲染之前获取数据。
来源:packages/react-router/__tests__/data-memory-router-test.tsx536-623
Action 处理表单提交。
来源: packages/react-router/__tests__/data-memory-router-test.tsx626-689
React Router 提供了一个内置的错误处理机制
来源: packages/react-router/lib/hooks.tsx622-661 packages/react-router/lib/hooks.tsx679-750
useNavigation 钩子提供了有关当前导航状态的信息
来源: packages/react-router/__tests__/data-memory-router-test.tsx547-603
React Router 的核心概念围绕着
理解这些概念为在 React 应用程序中实现有效的路由奠定了基础。