当前位置:首页 > React

react路由如何配置

2026-03-30 18:52:20React

React 路由配置方法

安装依赖

使用 npm 或 yarn 安装 react-router-dom 包:

npm install react-router-dom
# 或
yarn add react-router-dom

基本路由配置

在项目中创建路由文件(如 App.jsRoutes.js),导入必要组件:

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

配置路由结构:

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

动态路由

通过 :param 实现动态路由匹配:

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

在组件中获取参数:

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

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

嵌套路由

通过 <Outlet /> 实现嵌套路由:

<Route path="/dashboard" element={<Dashboard />}>
  <Route path="settings" element={<Settings />} />
  <Route path="analytics" element={<Analytics />} />
</Route>

在父组件中渲染子路由:

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

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

编程式导航

使用 useNavigate 实现跳转:

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

function LoginButton() {
  const navigate = useNavigate();
  return (
    <button onClick={() => navigate('/dashboard')}>
      Login
    </button>
  );
}

404 路由处理

配置未匹配路由的兜底方案:

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

路由守卫

通过高阶组件实现权限控制:

const PrivateRoute = ({ children }) => {
  const isAuthenticated = checkAuth();
  return isAuthenticated ? children : <Navigate to="/login" />;
};

<Route
  path="/admin"
  element={
    <PrivateRoute>
      <AdminPanel />
    </PrivateRoute>
  }
/>

路由懒加载

使用 React.lazy 实现按需加载:

react路由如何配置

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

<Route
  path="/lazy"
  element={
    <React.Suspense fallback={<Loading />}>
      <LazyComponent />
    </React.Suspense>
  }
/>

注意事项

  • 确保所有路由包裹在 <Router> 组件内
  • 路径匹配遵循精确匹配原则,可通过 exact 属性控制(v6 中已移除,改用 <Routes> 自动优化)
  • 生产环境需配置服务器支持前端路由(如 Nginx 的 try_files

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

相关文章

动态路由的实现vue

动态路由的实现vue

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

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

如何读react源码

如何读react源码

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

react如何创建框架

react如何创建框架

React 创建框架的方法 React 本身是一个用于构建用户界面的 JavaScript 库,但可以通过多种方式创建框架或项目结构。以下是几种常见的方法: 使用 Create React App…

react如何重写alert

react如何重写alert

重写 React 中的 alert 方法 在 React 中,直接使用原生 alert 会破坏用户体验,通常需要自定义弹窗组件替代。以下是实现方法: 使用自定义弹窗组件 创建可复用的弹窗组件,替代原…

react如何实现混入

react如何实现混入

在React中实现混入(Mixin)功能可以通过以下几种方式实现,React官方已不推荐使用传统的React.createClass混入方式,但可通过高阶组件或自定义Hook替代。 高阶组件(HOC…