当前位置:首页 > React

react router如何跳转

2026-01-23 19:40:22React

React Router 跳转方法

在 React Router(v6 版本)中,跳转页面可以通过多种方式实现,以下是常见的几种方法:

1. 使用 Link 组件导航 Link 是 React Router 提供的声明式导航组件,适用于点击跳转场景。

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

function MyComponent() {
  return (
    <Link to="/target-path">跳转到目标页</Link>
  );
}

2. 使用 useNavigate Hook 编程式导航 通过 useNavigate Hook 可以在事件处理或逻辑中动态跳转。

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

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

  const handleClick = () => {
    navigate('/target-path'); // 跳转到目标路径
    navigate(-1); // 返回上一页
  };

  return <button onClick={handleClick}>跳转</button>;
}

3. 路由重定向 Navigate 组件 适用于条件跳转(如权限验证后自动跳转)。

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

function ProtectedRoute({ isAuth }) {
  return isAuth ? <Dashboard /> : <Navigate to="/login" replace />;
}

4. 传递状态参数 跳转时可携带状态(state),目标页面通过 useLocation 获取。

react router如何跳转

// 跳转时传递参数
navigate('/target-path', { state: { id: 123 } });

// 目标页面获取参数
import { useLocation } from 'react-router-dom';
const location = useLocation();
console.log(location.state.id); // 123

注意事项

  • 路由版本差异:v5 使用 useHistory,v6 改为 useNavigate
  • replace 选项:默认跳转是 push 模式(保留历史记录),添加 replace: true 会替换当前历史记录。
  • 动态路由参数:路径如 /user/:id,目标页面通过 useParams 获取参数。

标签: 跳转react
分享给朋友:

相关文章

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以下…

react如何diff

react如何diff

React Diff 算法原理 React 的 Diff 算法是 Virtual DOM 的核心部分,用于高效更新真实 DOM。其核心思想是通过对比新旧 Virtual DOM 树的差异,最小化 DO…

react如何encode

react如何encode

React 中编码的实现方式 在 React 中,编码通常涉及对 URL、HTML 实体或特殊字符的处理。以下是几种常见的编码方法: 使用 encodeURIComponent 进行 URL 编码…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Rea…

如何安装react

如何安装react

安装React的方法 方法一:使用Create React App(官方推荐) Create React App是官方提供的脚手架工具,适合快速搭建React项目。确保已安装Node.js(建议版本≥…