当前位置:首页 > React

在react中如何设置路由

2026-03-11 13:12:41React

安装 React Router

在项目中安装 React Router 库,使用 npm 或 yarn 进行安装。React Router 的最新版本是 v6,推荐使用该版本。

npm install react-router-dom

yarn add react-router-dom

配置基本路由

在项目的入口文件(通常是 App.jsindex.js)中引入必要的组件并配置路由。使用 BrowserRouter 作为路由容器,RoutesRoute 组件定义路由规则。

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

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

使用动态路由

动态路由允许在 URL 中传递参数,例如用户 ID 或文章标题。使用冒号(:)定义动态参数,通过 useParams 钩子获取参数值。

在react中如何设置路由

import { Routes, Route, useParams } from 'react-router-dom';

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

function App() {
  return (
    <Routes>
      <Route path="/user/:userId" element={<UserProfile />} />
    </Routes>
  );
}

嵌套路由

嵌套路由用于在父路由下定义子路由。在父组件中使用 Outlet 组件渲染子路由内容。

import { Routes, Route, Outlet } from 'react-router-dom';

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

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

function App() {
  return (
    <Routes>
      <Route path="/" element={<Layout />}>
        <Route path="dashboard" element={<Dashboard />} />
      </Route>
    </Routes>
  );
}

导航链接

使用 Link 组件在页面间导航,避免页面刷新。NavLink 组件可以高亮当前活动链接。

在react中如何设置路由

import { Link, NavLink } from 'react-router-dom';

function Navigation() {
  return (
    <nav>
      <Link to="/">Home</Link>
      <NavLink to="/about" activeClassName="active">About</NavLink>
    </nav>
  );
}

编程式导航

通过 useNavigate 钩子实现编程式导航,例如在表单提交后跳转页面。

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

function Login() {
  const navigate = useNavigate();

  const handleLogin = () => {
    navigate('/dashboard');
  };

  return <button onClick={handleLogin}>Login</button>;
}

路由守卫

通过自定义组件实现路由守卫,例如检查用户是否登录。在路由配置中使用条件渲染。

import { Route, Navigate } from 'react-router-dom';

function PrivateRoute({ element }) {
  const isAuthenticated = true; // 替换为实际的认证逻辑
  return isAuthenticated ? element : <Navigate to="/login" />;
}

function App() {
  return (
    <Routes>
      <Route path="/dashboard" element={<PrivateRoute element={<Dashboard />} />} />
    </Routes>
  );
}

路由懒加载

使用 React.lazySuspense 实现路由懒加载,优化性能。

import { Suspense, lazy } from 'react';

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

function App() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </Suspense>
  );
}

分享给朋友:

相关文章

vue实现路由历史

vue实现路由历史

Vue 实现路由历史管理 在 Vue 中,路由历史管理通常通过 Vue Router 实现。Vue Router 提供了两种历史记录模式:hash 模式和 history 模式。以下是具体实现方法。…

vue实现点击跳转路由

vue实现点击跳转路由

vue实现点击跳转路由的方法 在Vue中实现点击跳转路由,可以通过以下几种方式完成,具体取决于项目使用的路由管理工具(如Vue Router)以及需求场景。 使用router-link组件 rout…

vue实现路由跳转

vue实现路由跳转

路由跳转的基本方法 在Vue中,路由跳转可以通过vue-router实现。vue-router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的路由跳转方式。 声明式导航…

Vue中实现路由

Vue中实现路由

Vue 路由的实现方法 在 Vue 中实现路由通常使用 Vue Router 库。以下是具体的实现步骤: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router: n…

react如何设置input

react如何设置input

设置 React 中的 Input 元素 在 React 中设置 input 元素可以通过多种方式实现,包括受控组件、非受控组件以及使用第三方库。以下是几种常见的方法: 受控组件方式 受控组件通过…

vue路由实现模式

vue路由实现模式

Vue路由实现模式 Vue Router 提供了两种路由实现模式:Hash 模式和 History 模式。两种模式的主要区别在于 URL 的表现形式以及后端支持的需求。 Hash 模式 Hash 模…