当前位置:首页 > 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> 标签实现无刷新跳转:

react路由如何使用

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 /> 渲染子路由内容:

react路由如何使用

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 获取当前路由信息:

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

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

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

分享给朋友:

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

react如何使用路由

react如何使用路由

使用 React Router 的基本方法 React Router 是 React 应用中实现路由功能的核心库。以下是基本使用方法: 安装 React Router 依赖包: npm insta…

vue 实现动态路由

vue 实现动态路由

动态路由的实现方法 Vue中实现动态路由通常涉及以下关键步骤,结合Vue Router的API和异步加载逻辑完成。 基础配置 安装Vue Router并初始化路由实例。在router/index.j…

react refs 如何使用

react refs 如何使用

React Refs 的基本概念 Refs 是 React 提供的一种访问 DOM 节点或 React 组件实例的方式。通常在 React 的数据流中,父子组件通过 props 进行通信,但在某些情况…

react thunk 如何使用

react thunk 如何使用

使用 React Thunk 的基本步骤 安装 Redux 和 Redux Thunk 作为依赖项: npm install redux redux-thunk 在 Redux store 配置中应…

vue路由实现流程

vue路由实现流程

Vue 路由实现流程 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router 依赖包: npm install vue-router 或 yarn add vue-ro…