当前位置:首页 > React

react route 如何跳转

2026-01-24 01:37:58React

使用 useNavigate Hook(React Router v6)

在函数组件中,可以通过 useNavigate Hook 实现编程式导航。引入 useNavigate 后调用返回的函数,传入目标路径即可跳转。

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

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

  // 跳转到指定路径
  const handleClick = () => {
    navigate('/target-path');
  };

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

支持传递 state 或替换历史记录:

navigate('/target-path', { state: { id: 1 }, replace: true });

使用 <Navigate> 组件(React Router v6)

通过渲染 <Navigate> 组件可实现条件跳转。当该组件被渲染时,会自动触发导航。

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

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

使用 useHistory Hook(React Router v5)

在 v5 版本中,使用 useHistory Hook 的 pushreplace 方法跳转:

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

function MyComponent() {
  const history = useHistory();

  const handleClick = () => {
    history.push('/target-path');
    // 或 history.replace('/target-path');
  };

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

使用 <Link><NavLink> 组件

声明式导航组件,适用于点击链接跳转的场景:

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

// 普通链接
<Link to="/target-path">跳转</Link>

// 带样式的链接(激活时添加类名)
<NavLink 
  to="/target-path" 
  className={({ isActive }) => isActive ? 'active' : ''}
>
  跳转
</NavLink>

路由参数与动态跳转

跳转时传递参数(如动态路由或查询参数):

// 动态路由参数
navigate('/user/123');

// 查询参数
navigate('/search?keyword=react');

// 通过 state 传递隐式参数
navigate('/detail', { state: { id: 1 } });

在目标组件中通过 useParamsuseLocation 获取参数:

react route 如何跳转

// 获取动态路由参数
const { id } = useParams();

// 获取 state 或查询参数
const { state, search } = useLocation();

注意事项

  • v6 与 v5 差异:v6 移除了 useHistory,改用 useNavigate<Redirect><Navigate> 替代。
  • 相对路径:v6 支持相对于当前路由的路径(如 navigate('child'))。
  • 性能优化:避免在渲染过程中直接调用导航方法,应在事件回调或副作用中处理。

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

相关文章

react如何调试

react如何调试

调试 React 应用的方法 使用 React Developer Tools React Developer Tools 是 Chrome 和 Firefox 的浏览器扩展,可以检查组件树、状态和…

react如何迭代

react如何迭代

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

如何安装react

如何安装react

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

react 如何遍历

react 如何遍历

遍历数组 在React中遍历数组通常使用map方法,它会返回一个新的数组。map是处理数组并渲染列表元素的首选方法。 const items = ['Apple', 'Banana', 'Cherr…

h5实现网页跳转

h5实现网页跳转

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

react如何debugger

react如何debugger

调试 React 应用的方法 使用浏览器开发者工具进行调试 React 开发者工具(React DevTools)是调试 React 应用的必备工具。安装 Chrome 或 Firefox 扩展后,可…