当前位置:首页 > 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>
  );
}

动态路由与参数传递

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

<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 获取状态:

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 渲染子路由:

页面之间如何跳转react

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

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

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

相关文章

vue实现转页面

vue实现转页面

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转可以通过多种方式,主要分为编程式导航和声明式导航两种。以下是具体实现方法: 使用 <router-link> 声明式导航 <r…

jquery页面加载

jquery页面加载

jQuery 页面加载事件 在 jQuery 中,页面加载事件通常通过 $(document).ready() 或简写的 $() 来实现。这种方式确保代码在 DOM 完全加载后执行,但无需等待图片等资…

vue项目实现页面

vue项目实现页面

Vue项目实现页面的基本方法 创建Vue组件 使用Vue单文件组件(SFC)方式组织页面结构,每个.vue文件包含<template>、<script>和<style&g…

vue实现页面滚动

vue实现页面滚动

Vue 实现页面滚动的方法 使用原生 JavaScript 方法 在 Vue 中可以直接调用原生 JavaScript 的滚动方法,例如 window.scrollTo 或 element.scrol…

vue页面实现定位

vue页面实现定位

使用HTML5 Geolocation API实现定位 在Vue中可以通过浏览器内置的HTML5 Geolocation API获取用户位置。需要在methods中定义获取定位的方法,并处理权限请求。…

vue 实现反馈页面

vue 实现反馈页面

实现反馈页面的基本结构 使用 Vue.js 创建一个反馈页面需要设计表单组件,包含输入框、下拉选择、评分控件等元素。以下是一个基础模板: <template> <div cla…