当前位置:首页 > React

react的history如何跳转路由

2026-01-25 13:33:39React

使用 useHistory Hook(React Router v5)

在函数组件中,可以通过 useHistory Hook 获取 history 对象,调用 pushreplacego 等方法实现路由跳转。

react的history如何跳转路由

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

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

  // 跳转到指定路径
  history.push('/target-path');

  // 替换当前路由(不保留历史记录)
  history.replace('/new-path');

  // 返回上一页
  history.goBack();

  // 前进一页
  history.goForward();
}

使用 withRouter 高阶组件(React Router v5)

在类组件中,可以通过 withRouter 高阶组件注入 history 对象。

react的history如何跳转路由

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

class MyComponent extends React.Component {
  handleClick = () => {
    this.props.history.push('/target-path');
  };

  render() {
    return <button onClick={this.handleClick}>跳转</button>;
  }
}

export default withRouter(MyComponent);

使用 useNavigate Hook(React Router v6)

React Router v6 移除了 useHistory,改用 useNavigate Hook 实现路由跳转。

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

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

  // 跳转到指定路径
  navigate('/target-path');

  // 替换当前路由(可配置选项)
  navigate('/new-path', { replace: true });

  // 返回上一页
  navigate(-1);

  // 前进一页
  navigate(1);
}

直接操作 history 对象(通用方法)

通过创建自定义 history 对象(如 createBrowserHistory),可以在非组件环境中直接操作路由。

import { createBrowserHistory } from 'history';

const history = createBrowserHistory();

// 跳转路由
history.push('/target-path');

// 监听路由变化
history.listen((location) => {
  console.log('路由变化:', location.pathname);
});

注意事项

  • React Router v6 中不再推荐使用 history 直接操作路由,建议优先使用 useNavigate
  • 跳转时可通过对象传递 state 参数:
    navigate('/target', { state: { id: 123 } });
  • 在类组件中使用 React Router v6 时,需通过 useNavigate 的包装器或上下文传递导航方法。

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

相关文章

vue实现点击跳转

vue实现点击跳转

Vue 实现点击跳转的方法 在 Vue 中实现点击跳转可以通过以下几种方式: 使用 router-link router-link 是 Vue Router 提供的组件,用于声明式导航。适合在模板…

vue实现路由守卫

vue实现路由守卫

路由守卫的基本概念 路由守卫是 Vue Router 提供的一种机制,用于在路由跳转前后执行特定的逻辑。通过路由守卫,可以实现权限控制、页面访问限制、数据预加载等功能。 全局前置守卫 使用 rout…

h5实现登录页面跳转页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面跳转页面

实现登录页面跳转的方法 在H5中实现登录页面跳转可以通过多种方式完成,以下是一些常见的方法: 使用JavaScript的window.location方法 通过JavaScript的window.l…

h5实现页面跳转页面跳转页面

h5实现页面跳转页面跳转页面

H5 实现页面跳转的方法 使用 <a> 标签实现跳转 通过超链接标签 <a> 的 href 属性指定目标页面路径,用户点击后跳转。 <a href="target…

php 路由实现

php 路由实现

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

jquery 跳转

jquery 跳转

jQuery 页面跳转方法 使用 jQuery 实现页面跳转可以通过多种方式完成,以下是几种常见的方法: 修改 window.location 属性 // 直接跳转到指定 URL window.l…