当前位置:首页 > 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 渲染子路由:

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

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

页面之间如何跳转react

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

相关文章

vue实现页面分页

vue实现页面分页

Vue实现页面分页的方法 使用Element UI的分页组件 Element UI提供了现成的分页组件el-pagination,可以快速实现分页功能。需要先安装Element UI库。 <t…

php实现页面跳转

php实现页面跳转

PHP实现页面跳转的方法 在PHP中,可以通过多种方式实现页面跳转,以下是几种常用的方法: header函数跳转 header("Location: target_page.php"); ex…

vue实现点击页面切换

vue实现点击页面切换

Vue 实现页面切换 在 Vue 中实现页面切换通常可以通过以下几种方式实现,具体选择取决于项目需求和技术栈。 使用 Vue Router 实现页面切换 Vue Router 是 Vue 官方提供…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https:/…

h5实现登录页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面

实现H5登录页面跳转 在H5中实现登录页面跳转可以通过多种方式完成,以下是几种常见方法: 使用window.location.href window.location.href = '目标页面…

h5实现登录页面跳转页面跳转页面跳转

h5实现登录页面跳转页面跳转页面跳转

使用HTML5实现登录页面跳转 在HTML5中实现登录页面跳转可以通过多种方式完成,包括表单提交、JavaScript跳转和超链接跳转。以下是几种常见的实现方法。 表单提交跳转 使用HTML表单的a…