当前位置:首页 > React

react如何跳转页面

2026-02-11 21:32:37React

路由跳转(React Router)

在React中实现页面跳转通常使用React Router库。以下是几种常见方式:

安装React Router(v6版本):

npm install react-router-dom

声明式导航(推荐) 使用<Link>组件实现跳转,不会触发页面刷新:

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

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

编程式导航 在事件处理函数中使用useNavigate钩子:

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

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

  const handleClick = () => {
    navigate('/about'); // 普通跳转
    navigate('/about', { replace: true }); // 替换当前历史记录
    navigate(-1); // 返回上一页
  };

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

原生跳转方法

window.location 直接修改浏览器地址(会触发页面刷新):

window.location.href = '/about';

history API 使用浏览器原生API(需兼容性处理):

window.history.pushState({}, '', '/about');

路由参数传递

URL参数 通过路由配置传递参数:

navigate('/user/123'); // 跳转

// 路由配置
<Route path="/user/:id" element={<UserPage />} />

// 获取参数
import { useParams } from 'react-router-dom';
const { id } = useParams();

状态参数 通过state传递复杂对象:

navigate('/about', {
  state: { fromDashboard: true }
});

// 获取状态
import { useLocation } from 'react-router-dom';
const { state } = useLocation();

注意事项

  • 使用React Router时需确保组件被<BrowserRouter>包裹
  • 编程式导航通常在异步操作(如API请求)完成后执行
  • 原生跳转会丢失React应用状态,推荐优先使用React Router

react如何跳转页面

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

相关文章

vue实现引导页面

vue实现引导页面

vue实现引导页面的方法 使用Vue实现引导页面可以通过多种方式完成,以下是几种常见的方法: 使用第三方库driver.js 安装driver.js库: npm install driver.j…

vue实现单页面

vue实现单页面

Vue 实现单页面应用(SPA)的方法 Vue.js 是一个渐进式框架,适合构建单页面应用(SPA)。以下是实现 SPA 的核心步骤和关键配置。 安装 Vue 和 Vue Router 确保已安装…

js实现页面跳转

js实现页面跳转

使用 window.location.href 通过修改 window.location.href 属性实现页面跳转: window.location.href = 'https://example…

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

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

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

vue实现 页面

vue实现 页面

Vue 实现页面的基本方法 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现页面的常见方法: 单文件组件(SFC) 使用 .vue 文件组织页面结构,包含模板、脚…

vue实现页面

vue实现页面

Vue 实现页面的基本方法 安装 Vue.js 依赖 通过 npm 或 yarn 安装 Vue.js: npm install vue # 或 yarn add vue 创建 Vue 实例 在…