当前位置:首页 > React

页面之间如何跳转react

2026-01-24 11:10:38React

使用 React Router 进行页面跳转

React Router 是 React 生态中最常用的路由库,用于实现单页应用(SPA)的页面跳转。安装 React Router DOM 包:

npm install react-router-dom

在应用中配置路由,使用 BrowserRouter 包裹整个应用,并通过 RoutesRoute 定义路径与组件的映射关系:

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>
      <h1>Home</h1>
      <Link to="/about">Go to About</Link>
    </div>
  );
}

编程式导航

通过 useNavigate Hook 在事件处理函数中实现编程式跳转:

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

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

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

  return (
    <div>
      <h1>Home</h1>
      <button onClick={handleClick}>Go to About</button>
    </div>
  );
}

动态路由与参数传递

定义动态路由路径并传递参数:

页面之间如何跳转react

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

通过 useParams 获取路由参数:

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

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

通过 navigate 传递状态:

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

在目标组件中通过 useLocation 获取状态:

页面之间如何跳转react

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

function About() {
  const location = useLocation();
  const { fromHome } = location.state || {};
  return <h1>About {fromHome && "(from Home)"}</h1>;
}

重定向

使用 Navigate 组件实现重定向:

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

function ProtectedRoute({ isLoggedIn, children }) {
  if (!isLoggedIn) {
    return <Navigate to="/login" replace />;
  }
  return children;
}

嵌套路由

通过嵌套 Route 实现布局层级:

<Route path="/dashboard" element={<DashboardLayout />}>
  <Route index element={<DashboardHome />} />
  <Route path="settings" element={<DashboardSettings />} />
</Route>

在布局组件中使用 Outlet 渲染子路由:

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

function DashboardLayout() {
  return (
    <div>
      <h1>Dashboard</h1>
      <Outlet />
    </div>
  );
}

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

相关文章

Vue实现lagger页面

Vue实现lagger页面

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

vue实现聊天页面

vue实现聊天页面

Vue 实现聊天页面的核心步骤 搭建基础结构 使用 Vue CLI 或 Vite 初始化项目,安装必要依赖如 vue-router 和 axios。创建单文件组件 ChatWindow.vue 作为主…

php怎样实现页面跳转页面

php怎样实现页面跳转页面

PHP实现页面跳转的方法 使用header()函数实现跳转 通过设置HTTP头信息中的Location字段实现跳转,需确保在调用前没有输出任何内容。示例代码: header("Location: h…

jquery加载页面

jquery加载页面

jQuery 加载页面内容的方法 使用 .load() 方法 通过 AJAX 请求加载远程数据并插入到指定元素中。适用于加载部分页面片段。 $("#targetElement").load("ext…

vue实现打印页面

vue实现打印页面

Vue 实现打印页面的方法 在 Vue 项目中实现打印功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 window.print() 方法 通过调用浏览器的原生打印 API window.…

vue 实现页面 表格

vue 实现页面 表格

Vue 实现页面表格的方法 Vue 提供了多种方式实现表格功能,可以根据需求选择不同的方案。以下是常见的实现方法: 使用原生 HTML 表格 通过 Vue 的模板语法直接渲染表格数据: <t…