当前位置:首页 > React

react路由如何使用

2026-03-30 19:38:35React

React 路由的基本使用

React 路由通常通过 react-router-dom 库实现,适用于单页应用(SPA)的页面导航。

安装依赖
确保项目中安装了 react-router-dom

npm install react-router-dom

配置路由

基本路由结构
App.js 或根组件中配置路由,使用 BrowserRouterHashRouter 包裹应用:

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

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

动态路由
通过 :param 定义动态路径参数:

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

在目标组件中通过 useParams 获取参数:

import { useParams } from 'react-router-dom';

function UserProfile() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

导航跳转

使用 Link 组件
替代 <a> 标签实现无刷新跳转:

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>
  );
}

嵌套路由

子路由配置
在父路由组件中嵌套子路由:

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

父组件中通过 <Outlet /> 渲染子路由内容:

import { Outlet } from 'react-router-dom';

function Dashboard() {
  return (
    <div>
      <h1>Dashboard</h1>
      <Outlet />
    </div>
  );
}

路由守卫

实现权限控制
通过高阶组件或自定义逻辑拦截未授权访问:

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

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

404 页面处理

捕获未匹配路由
通过 path="*" 定义兜底路由:

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

其他功能

路由懒加载
使用 React.lazySuspense 实现按需加载:

const About = React.lazy(() => import('./About'));

<Route path="/about" element={
  <Suspense fallback={<div>Loading...</div>}>
    <About />
  </Suspense>
} />

获取路由状态
通过 useLocation 获取当前路由信息:

react路由如何使用

import { useLocation } from 'react-router-dom';

function CurrentPath() {
  const location = useLocation();
  return <div>Current path: {location.pathname}</div>;
}

以上是 React 路由的核心用法,适用于大多数场景。根据项目需求,可进一步结合路由钩子、状态管理等扩展功能。

分享给朋友:

相关文章

动态路由的实现vue

动态路由的实现vue

动态路由的实现(Vue) 在Vue中实现动态路由通常涉及以下方法: 基于路由参数(params) 在路由配置中使用动态片段(以冒号开头),例如: const routes = [ { path…

vue实现前端路由

vue实现前端路由

Vue 前端路由实现方法 Vue 前端路由可以通过 vue-router 库实现,这是 Vue 官方推荐的路由解决方案。 安装 vue-router 通过 npm 或 yarn 安装 vue-rou…

react 如何使用 apply

react 如何使用 apply

使用 apply 方法的基本概念 在 JavaScript 中,apply 是函数原型上的方法,用于调用函数时指定 this 的值和传递参数数组。React 中可以使用 apply 来绑定组件方法或调…

vue实现tab路由

vue实现tab路由

Vue 实现 Tab 路由的方法 在 Vue 中实现 Tab 路由通常需要结合 Vue Router 和动态组件或条件渲染。以下是几种常见方法: 使用 Vue Router 动态路由 配置路由文件…

vue路由实现hash

vue路由实现hash

Vue 路由实现 Hash 模式 在 Vue Router 中,Hash 模式是通过 URL 的 hash(#)部分来实现路由的。这种模式兼容性较好,不需要服务器额外配置,适合大多数前端单页应用(SP…

vue怎么实现路由

vue怎么实现路由

Vue 路由的实现方法 Vue 路由可以通过 Vue Router 实现,Vue Router 是 Vue.js 的官方路由管理器。以下是实现路由的步骤: 安装 Vue Router 在项目中安装…