当前位置:首页 > React

react中如何路由

2026-02-11 22:40:08React

路由基础配置

在React中实现路由通常使用react-router-dom库(适用于Web应用)。通过BrowserRouterHashRouter包裹整个应用,并配置Route组件定义路径与组件的映射关系。

安装依赖:

npm install react-router-dom

基础示例:

import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Home from './Home';
import About from './About';

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </Router>
  );
}

动态路由与参数传递

通过:定义动态路径参数,使用useParams钩子获取参数值:

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

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

导航与链接

使用Link组件实现页面跳转,避免整页刷新:

import { Link } from 'react-router-dom';
function Navbar() {
  return (
    <nav>
      <Link to="/">Home</Link>
      <Link to="/about">About</Link>
    </nav>
  );
}

编程式导航通过useNavigate钩子:

import { useNavigate } from 'react-router-dom';
function LoginButton() {
  const navigate = useNavigate();
  return <button onClick={() => navigate('/dashboard')}>Login</button>;
}

嵌套路由

通过Outlet组件实现嵌套路由的占位渲染:

<Route path="/dashboard" element={<DashboardLayout />}>
  <Route path="profile" element={<Profile />} />
  <Route path="settings" element={<Settings />} />
</Route>

// DashboardLayout组件内:
import { Outlet } from 'react-router-dom';
function DashboardLayout() {
  return (
    <div>
      <h1>Dashboard</h1>
      <Outlet /> {/* 子路由内容在此渲染 */}
    </div>
  );
}

路由守卫与重定向

通过Navigate组件或useNavigate实现权限控制:

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

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

路由懒加载

结合React.lazySuspense实现组件懒加载:

react中如何路由

const About = React.lazy(() => import('./About'));
function App() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <Route path="/about" element={<About />} />
    </Suspense>
  );
}

标签: 路由react
分享给朋友:

相关文章

vue实现动态路由按钮

vue实现动态路由按钮

Vue 实现动态路由按钮的方法 动态路由按钮的实现通常涉及权限控制,根据用户角色或权限动态显示或隐藏路由按钮。以下是几种常见方法: 基于路由元信息(meta)和v-if控制 在路由配置中添加权限标识…

react如何encode

react如何encode

React 中编码的实现方式 在 React 中,编码通常涉及对 URL、HTML 实体或特殊字符的处理。以下是几种常见的编码方法: 使用 encodeURIComponent 进行 URL 编码…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Rea…

react如何调度

react如何调度

React 调度机制概述 React 的调度机制通过 Fiber 架构 和 Scheduler 模块实现任务优先级管理与时间切片(Time Slicing),确保高优先级更新(如用户交互)能快速响应,…

react如何配置

react如何配置

配置React项目的基本步骤 安装Node.js和npm 确保系统已安装Node.js(包含npm)。可通过命令行检查版本: node -v npm -v 创建React项目 使用官方工具Creat…

如何读react源码

如何读react源码

理解React源码的结构 React源码托管在GitHub上,主要分为几个核心模块:react、react-dom、react-reconciler等。react包包含核心API和组件逻辑,react…