当前位置:首页 > 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 Router实现页面跳转 安装Vue Router后,在项目中…

vue实现点击跳转

vue实现点击跳转

Vue 实现点击跳转的方法 在 Vue 中实现点击跳转可以通过以下几种方式: 使用 router-link router-link 是 Vue Router 提供的组件,用于声明式导航。适合在模板…

vue实现页面定位

vue实现页面定位

Vue 实现页面定位的方法 在 Vue 中实现页面定位通常可以通过以下几种方式完成,包括使用原生 JavaScript 的 scrollIntoView 方法、Vue Router 的滚动行为配置,以…

js实现跳转

js实现跳转

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

实现vue页面回退

实现vue页面回退

监听浏览器返回事件 在Vue组件中使用beforeRouteLeave导航守卫,可以监听路由变化。该方法在离开当前路由前触发,适用于需要确认或保存数据的场景。 beforeRouteLeave(…

css如何制作页面模糊

css如何制作页面模糊

使用 backdrop-filter 属性 通过 backdrop-filter 属性可以直接为元素背后的区域添加模糊效果。该属性需要浏览器支持(如 Chrome、Edge、Safari)。示例代码:…