当前位置:首页 > React

react的history如何跳转路由

2026-01-25 13:33:39React

使用 useHistory Hook(React Router v5)

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

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 对象。

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 的包装器或上下文传递导航方法。

react的history如何跳转路由

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

相关文章

vue路由实现滑动

vue路由实现滑动

实现 Vue 路由滑动效果的方法 使用 Vue Router 结合 CSS 过渡动画 在 Vue Router 的路由视图组件 <router-view> 上添加过渡效果,结合 CSS 实…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

vue 路由实现

vue 路由实现

Vue 路由实现方法 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是实现 Vue 路由的基本步骤: 安装 Vue Router 使用 npm 或 y…

动态路由的实现vue

动态路由的实现vue

动态路由的实现(Vue) 在Vue中实现动态路由通常涉及以下方法: 基于路由参数(params) 在路由配置中使用动态片段(以冒号开头),例如: const routes = [ { pa…

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

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

实现H5登录页面跳转 在H5中实现登录页面跳转可以通过多种方式完成,以下是几种常见方法: 使用window.location.href window.location.href = '目标页面…

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

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

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