当前位置:首页 > 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实现界面跳转

vue实现界面跳转

路由配置 在Vue项目中实现界面跳转通常依赖Vue Router。需在router/index.js中配置路由路径和组件映射关系: import { createRouter, createWebH…

vue实现页面缓存

vue实现页面缓存

使用 <keep-alive> 组件实现缓存 Vue 内置的 <keep-alive> 组件可以缓存动态组件或路由组件。通过包裹需要缓存的组件,可以保留其状态避免重复渲染。…

vue单页面实现登录

vue单页面实现登录

实现登录功能的基本步骤 在Vue单页面应用(SPA)中实现登录功能,通常需要结合前端和后端交互。以下是关键步骤和代码示例: 创建登录组件 开发一个独立的登录组件,包含表单元素如用户名和密码输入框,以…

vue实现两个登录页面

vue实现两个登录页面

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

h5实现页面跳转

h5实现页面跳转

使用 <a> 标签实现跳转 通过 HTML5 的 <a> 标签实现页面跳转是最基础的方法,适用于静态页面或简单的导航需求。示例代码如下: <a href="target…

uniapp前端页面

uniapp前端页面

Uniapp 前端页面开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端部署(H5、小程序、App等)。以下是开发 Uniapp 前端页面的关键方法和注意事项。…