当前位置:首页 > React

react.js如何跳转页面

2026-01-25 02:40:30React

React.js 页面跳转方法

在 React.js 中实现页面跳转可以通过多种方式,具体取决于项目使用的路由库(如 React Router)或原生方法。

使用 React Router 进行编程式导航

React Router 是 React 生态中最常用的路由库,支持编程式导航:

react.js如何跳转页面

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

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

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

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

使用 Link 组件声明式导航

对于声明式导航(如点击链接跳转),可以使用 Link 组件:

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

function NavBar() {
  return (
    <Link to="/about">关于页面</Link>
  );
}

使用重定向(Redirect)

在某些条件下自动跳转时,可以使用 Navigate 组件(React Router v6):

react.js如何跳转页面

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

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

原生方法跳转

在不使用路由库的情况下,可以通过原生方法实现跳转:

window.location.href = 'https://example.com'; // 完整 URL 跳转
window.location.replace('/new-path'); // 替换当前历史记录

动态路由参数传递

跳转时传递参数:

navigate('/user/123'); // 路径参数
navigate('/profile', { state: { id: 1 } }); // 状态参数

注意事项

  • 使用 React Router 前需安装:npm install react-router-dom
  • 确保应用已包裹 <BrowserRouter> 或类似组件
  • 编程式导航通常用于表单提交、权限校验后的跳转等场景
  • 声明式导航更适合静态链接场景

标签: 跳转页面
分享给朋友:

相关文章

vue实现点击跳转

vue实现点击跳转

路由跳转(Vue Router) 在Vue项目中通过vue-router实现页面跳转是最常见的方式。确保已安装并配置路由: // 路由配置示例(router/index.js) import { c…

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转。…

vue 实现登录跳转

vue 实现登录跳转

实现登录跳转的基本流程 在Vue中实现登录跳转通常涉及以下几个核心步骤:路由配置、登录表单处理、状态管理及导航守卫。以下是具体实现方法: 路由配置 在router/index.js中配置登录页和需要…

Vue实现lagger页面

Vue实现lagger页面

Vue实现懒加载页面的方法 懒加载(Lazy Loading)是一种优化技术,用于延迟加载非关键资源,从而提升页面初始加载速度。在Vue中可以通过以下方式实现懒加载: 路由懒加载 使用Vue Rou…

vue实现跳转高亮

vue实现跳转高亮

Vue实现路由跳转高亮 在Vue项目中实现导航菜单跳转高亮效果,通常结合vue-router的active-class特性。以下是几种常见实现方式: 使用router-link的active-cla…

js实现跳转页面

js实现跳转页面

使用 window.location.href 实现跳转 通过修改 window.location.href 属性可以跳转到指定 URL。这是最常见且简单的方法,会触发页面刷新并加载新页面。 win…