当前位置:首页 > React

react router实现

2026-01-26 12:51:56React

React Router 实现

React Router 是 React 应用中用于实现客户端路由的核心库,支持动态路由匹配、导航和组件渲染。以下是其核心实现方法和步骤。

安装 React Router

使用 npm 或 yarn 安装最新版本的 React Router(以 v6 为例):

npm install react-router-dom

基本路由配置

在根组件(如 App.js)中通过 BrowserRouter 包裹应用,并定义路由规则:

import { BrowserRouter, Routes, Route } from "react-router-dom";

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<HomePage />} />
        <Route path="/about" element={<AboutPage />} />
      </Routes>
    </BrowserRouter>
  );
}
  • BrowserRouter:基于 HTML5 History API 的路由容器。
  • RoutesRoute:定义路径与组件的映射关系。

动态路由与参数

通过 :param 语法实现动态路由,并在组件中通过 useParams 获取参数:

react router实现

<Route path="/user/:id" element={<UserProfile />} />

// 在 UserProfile 组件中
import { useParams } from "react-router-dom";
function UserProfile() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

嵌套路由

通过 <Outlet> 实现嵌套路由的组件渲染:

<Route path="/dashboard" element={<DashboardLayout />}>
  <Route path="stats" element={<StatsPage />} />
  <Route path="settings" element={<SettingsPage />} />
</Route>

// DashboardLayout 组件中需包含 Outlet
function DashboardLayout() {
  return (
    <div>
      <Sidebar />
      <Outlet /> {/* 嵌套路由组件在此渲染 */}
    </div>
  );
}

导航与链接

使用 LinkuseNavigate 实现导航:

react router实现

import { Link, useNavigate } from "react-router-dom";

function NavBar() {
  const navigate = useNavigate();
  return (
    <nav>
      <Link to="/">Home</Link>
      <button onClick={() => navigate("/about")}>About</button>
    </nav>
  );
}
  • Link:生成无刷新跳转的链接。
  • useNavigate:编程式导航(如跳转、重定向)。

路由守卫与鉴权

通过自定义封装实现路由鉴权:

function PrivateRoute({ children }) {
  const isAuthenticated = checkAuth(); // 自定义鉴权逻辑
  return isAuthenticated ? children : <Navigate to="/login" />;
}

// 使用方式
<Route path="/admin" element={<PrivateRoute><AdminPage /></PrivateRoute>} />

404 路由处理

未匹配路径时渲染 404 页面:

<Route path="*" element={<NotFoundPage />} />

代码分割与懒加载

结合 React.lazySuspense 实现按需加载:

const AboutPage = React.lazy(() => import("./AboutPage"));

<Route 
  path="/about" 
  element={
    <Suspense fallback={<LoadingSpinner />}>
      <AboutPage />
    </Suspense>
  } 
/>

注意事项

  1. 路由版本:React Router v6 与 v5 语法差异较大,需注意 API 变更。
  2. HashRouter:若需兼容无服务器配置的静态部署,可用 HashRouter 替代 BrowserRouter
  3. 状态管理:导航时可通过 state 传递数据:
    navigate("/user", { state: { fromHome: true } });

标签: reactrouter
分享给朋友:

相关文章

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…

如何开发react

如何开发react

开发React应用的基本步骤 安装Node.js和npm 确保系统中已安装Node.js(包含npm)。可通过官网下载安装包,安装后验证版本: node -v npm -v 创建React项目…

react就业如何

react就业如何

React 就业市场现状 React 作为当前主流前端框架之一,就业需求持续旺盛。国内外互联网企业、中大型公司以及初创团队普遍采用 React 技术栈,尤其在 Web 应用、移动端(React Nat…

react如何debugger

react如何debugger

调试 React 应用的方法 使用浏览器开发者工具进行调试 React 开发者工具(React DevTools)是调试 React 应用的必备工具。安装 Chrome 或 Firefox 扩展后,可…

如何恢复react

如何恢复react

恢复 React 项目的方法 检查并修复依赖项 运行 npm install 或 yarn install 重新安装所有依赖项。如果依赖项损坏或缺失,这将恢复项目所需的库和工具。 恢复删除的文件 如…

react 如何操作cookie

react 如何操作cookie

安装依赖 在React项目中操作cookie通常需要第三方库的支持,推荐使用js-cookie。通过npm或yarn安装: npm install js-cookie # 或 yarn add js…