当前位置:首页 > React

react怎样实现页面跳转

2026-01-27 16:01:56React

使用 React Router 进行页面跳转

React Router 是 React 生态中最常用的路由库,适用于单页面应用(SPA)的页面跳转。安装 React Router DOM 包后,可以通过以下方式实现跳转:

npm install react-router-dom

在项目中配置路由,使用 BrowserRouterRoutes 定义路由规则:

import { BrowserRouter, Routes, Route } from "react-router-dom";
import Home from "./Home";
import About from "./About";

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </BrowserRouter>
  );
}

使用 Link 组件导航

在组件内部使用 Link 组件实现无刷新跳转:

react怎样实现页面跳转

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

function Home() {
  return (
    <div>
      <Link to="/about">跳转到关于页面</Link>
    </div>
  );
}

编程式导航

通过 useNavigate Hook 在事件处理中实现跳转:

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

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

  const handleClick = () => {
    navigate("/about");
  };

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

动态路由跳转

传递参数到目标页面,通过路由配置和 useParams 获取参数:

react怎样实现页面跳转

<Route path="/user/:id" element={<UserProfile />} />

// 跳转时传递参数
navigate("/user/123");

// 在目标组件中获取参数
import { useParams } from "react-router-dom";

function UserProfile() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

重定向操作

使用 Navigate 组件或 navigate 函数实现重定向:

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

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

跳转时传递状态

通过 state 属性传递数据,目标页面通过 useLocation 获取:

navigate("/about", { state: { fromHome: true } });

// 目标组件中获取状态
import { useLocation } from "react-router-dom";

function About() {
  const location = useLocation();
  console.log(location.state.fromHome); // true
}

原生 JavaScript 跳转

非 React Router 场景下,可使用原生方法:

// 新窗口打开
window.open("/about", "_blank");

// 当前页跳转
window.location.href = "/about";

注意事项

  • React Router v6 使用 Routes 替代旧版的 Switch
  • 动态路由参数需通过 : 标记,如 /user/:id
  • 编程式导航的 navigate 支持第二个参数配置(如 replace: true 替换历史记录)。

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

相关文章

vue实现结算页面

vue实现结算页面

Vue 实现结算页面的核心步骤 数据绑定与表单验证 使用 Vue 的 v-model 绑定表单数据,例如收货地址、支付方式等。通过 Vue 的 computed 属性计算总价,结合 v-if 或 v-…

vue 实现页面返回

vue 实现页面返回

实现页面返回的方法 在Vue中实现页面返回功能可以通过多种方式实现,以下是几种常见的方案: 使用Vue Router的go方法 通过Vue Router的go方法可以控制浏览器的历史记录导航。rou…

vue实现关闭页面

vue实现关闭页面

关闭当前页面的方法 在Vue中关闭当前页面可以通过JavaScript的window.close()方法实现。该方法会关闭当前浏览器窗口或标签页。 methods: { closePage()…

h5实现页面跳转

h5实现页面跳转

使用 <a> 标签实现跳转 通过 HTML5 的 <a> 标签实现页面跳转是最基础的方法,适用于静态页面或简单的导航需求。示例代码如下: <a href="target…

h5页面实现录音

h5页面实现录音

实现H5页面录音的方法 使用Web Audio API Web Audio API提供音频处理能力,结合getUserMedia可实现录音。核心步骤包括请求麦克风权限、创建音频上下文和处理音频流。…

vue实现引导页面

vue实现引导页面

实现引导页面的方法 在Vue中实现引导页面通常需要结合用户交互和页面跳转逻辑,以下是几种常见的实现方式: 使用路由守卫控制访问权限 在router.js中配置全局前置守卫,检查用户是否首次访问:…