当前位置:首页 > 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 组件实现无刷新跳转:

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 获取参数:

<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 场景下,可使用原生方法:

react怎样实现页面跳转

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

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

注意事项

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

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

相关文章

vue实现两个登录页面

vue实现两个登录页面

实现两个登录页面的方法 在Vue中实现两个不同的登录页面,可以通过路由配置和组件分离来完成。以下是具体实现步骤: 配置路由 在router/index.js文件中定义两个不同的路由路径,分别指向不同…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

vue实现的页面

vue实现的页面

Vue 实现的页面示例 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是一个简单的 Vue 页面实现示例,包含基本的结构和功能。 安装 Vue 通过 CDN 引入 V…

css制作音乐盒页面

css制作音乐盒页面

音乐盒页面设计思路 音乐盒页面通常需要结合音频播放功能与视觉设计。以下是实现一个基础音乐盒页面的关键步骤。 HTML结构搭建 基础HTML需包含音频播放器控件和播放列表: <!DOC…

vue实现跳转高亮

vue实现跳转高亮

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

js实现跳转页面

js实现跳转页面

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