当前位置:首页 > React

react如何实现路由跳转

2026-03-10 15:43:57React

使用 react-router-dom 实现路由跳转

React 应用中实现路由跳转通常使用 react-router-dom 库。以下是几种常见的路由跳转方式:

安装依赖

npm install react-router-dom

声明式导航(使用 Link 组件)

在组件中引入 Link 组件,通过 to 属性指定目标路由:

react如何实现路由跳转

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

function NavBar() {
  return (
    <nav>
      <Link to="/home">Home</Link>
      <Link to="/about">About</Link>
    </nav>
  );
}

编程式导航(使用 useNavigate Hook)

在函数组件中通过 useNavigate Hook 实现编程式跳转:

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

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

  const handleClick = () => {
    // 跳转到指定路径
    navigate('/profile');

    // 带参数跳转
    navigate('/user/123');

    // 替换当前路由(不保留历史记录)
    navigate('/login', { replace: true });

    // 带状态跳转
    navigate('/dashboard', { state: { from: 'home' } });
  };

  return <button onClick={handleClick}>Go to Profile</button>;
}

路由参数传递与获取

传递参数

react如何实现路由跳转

// 通过 URL 参数
navigate('/user/123');

// 通过查询参数
navigate('/search?query=react');

// 通过状态对象
navigate('/details', { state: { id: 1 } });

获取参数

import { useParams, useLocation, useSearchParams } from 'react-router-dom';

function UserPage() {
  // 获取路径参数
  const { id } = useParams();

  // 获取状态参数
  const location = useLocation();
  const stateData = location.state;

  // 获取查询参数
  const [searchParams] = useSearchParams();
  const query = searchParams.get('query');

  return <div>User ID: {id}</div>;
}

路由配置示例

基本的路由配置示例:

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

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="/user/:id" element={<UserProfile />} />
        <Route path="*" element={<NotFound />} />
      </Routes>
    </Router>
  );
}

重定向实现

使用 Navigate 组件实现重定向:

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

function PrivateRoute({ isAuthenticated }) {
  return isAuthenticated ? <Dashboard /> : <Navigate to="/login" />;
}

注意事项

  • 确保所有路由跳转的组件都包裹在 Router 组件中
  • 类组件中可以使用 withRouter 高阶组件或通过 props 访问路由方法
  • 动态路由参数需要通过 useParams 获取
  • 路由跳转的状态参数不会显示在 URL 中,刷新页面后会丢失

标签: 跳转路由
分享给朋友:

相关文章

h5实现网页跳转

h5实现网页跳转

H5实现网页跳转的方法 在HTML5中,可以通过多种方式实现网页跳转。以下是几种常见的方法: 使用<a>标签 通过超链接标签实现跳转是最传统的方式: <a href="http…

react路由如何配置

react路由如何配置

React 路由配置方法 安装 React Router 使用 npm 或 yarn 安装 React Router 的 DOM 版本: npm install react-router-dom #…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注意…

vue实现路由匹配

vue实现路由匹配

Vue 路由匹配实现方法 在 Vue 中实现路由匹配通常使用 Vue Router 库。以下是核心实现方式: 基础路由配置 安装 Vue Router 后,在路由配置文件中定义路径与组件的映射关系:…

vue组件实现跳转

vue组件实现跳转

Vue 组件实现跳转的方法 在 Vue 中实现页面跳转可以通过多种方式,以下是常见的几种方法: 使用 router-link 组件 router-link 是 Vue Router 提供的组件,用于…

vue实现路由切换

vue实现路由切换

Vue 路由切换实现方法 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router 依赖包: npm install vue-router 配置路由 在项目中创建路由配置文…