当前位置:首页 > React

react 通过js实现跳转

2026-01-27 12:02:32React

使用 react-router-dom 进行编程式导航

在 React 中,可以通过 react-router-dom 提供的 useNavigate Hook 实现编程式导航。安装 react-router-dom 后,在函数组件中调用 useNavigate 获取导航函数:

react 通过js实现跳转

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

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

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

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

使用 history.push(适用于 Class 组件)

在 Class 组件中,可以通过 withRouter 高阶组件或直接访问 props.history 实现跳转:

react 通过js实现跳转

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);

通过 window.location 实现非路由跳转

如果需要完全跳转页面(而非单页应用内的路由切换),可以直接修改 window.location

const handleRedirect = () => {
  window.location.href = 'https://example.com'; // 完整 URL
};

动态路径与参数传递

通过 navigatehistory.push 可以传递参数:

navigate('/user', { state: { id: 123 } }); // 通过 state 传递
navigate('/user/123'); // 通过路径参数传递

注意事项

  • 使用 react-router-dom 前需确保项目已配置路由(如 <BrowserRouter>)。
  • window.location 会导致页面刷新,仅适用于非单页应用场景。
  • 路径参数需与路由配置匹配(如 <Route path="/user/:id" />)。

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

相关文章

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

如何创建react

如何创建react

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

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…