当前位置:首页 > React

react如何跳转页面

2026-02-26 07:31:06React

使用 react-router-dom 进行页面跳转

react-router-dom 是 React 生态中最常用的路由管理库,适用于单页应用(SPA)的页面跳转。安装最新版本:

npm install react-router-dom

基本路由配置

在应用入口文件(如 App.js)中配置路由:

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>
  );
}

编程式导航

通过 useNavigate hook 实现编程式跳转:

react如何跳转页面

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

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

  const handleClick = () => {
    navigate('/about'); // 跳转到关于页
    navigate(-1); // 返回上一页
    navigate('/user', { replace: true }); // 替换当前历史记录
  };

  return <button onClick={handleClick}>跳转</button>;
}

声明式导航

使用 <Link><NavLink> 组件创建可点击的导航链接:

import { Link, NavLink } from 'react-router-dom';

function NavBar() {
  return (
    <nav>
      <Link to="/">首页</Link>
      <NavLink to="/about" activeClassName="active">关于</NavLink>
    </nav>
  );
}

动态路由跳转

处理带参数的路径跳转和获取:

react如何跳转页面

// 路由配置
<Route path="/users/:id" element={<UserDetail />} />

// 跳转时传递参数
navigate(`/users/${userId}`);

// 在目标组件获取参数
import { useParams } from 'react-router-dom';
function UserDetail() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

重定向操作

使用 <Navigate> 组件实现条件重定向:

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

function ProtectedRoute({ user }) {
  return user ? <Dashboard /> : <Navigate to="/login" replace />;
}

状态传递

跳转时通过 state 传递数据:

navigate('/profile', {
  state: { fromDashboard: true }
});

// 在目标组件获取状态
import { useLocation } from 'react-router-dom';
function Profile() {
  const { state } = useLocation();
  console.log(state?.fromDashboard); // true
}

路由守卫

通过高阶组件实现权限控制:

function PrivateRoute({ children }) {
  const auth = useAuth();
  return auth ? children : <Navigate to="/login" />;
}

// 使用方式
<Route path="/dashboard" element={
  <PrivateRoute>
    <Dashboard />
  </PrivateRoute>
} />

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

相关文章

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

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

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

jquery页面

jquery页面

jQuery 页面操作指南 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互的操作。以下是 jQuery 在页面中的常见使用方法…

h5页面实现扫一扫

h5页面实现扫一扫

调用设备摄像头实现扫描功能 在H5页面中实现扫一扫功能通常需要调用设备的摄像头,并通过JavaScript解析摄像头捕获的图像。以下是几种常见的实现方法: 使用HTML5的getUserMedia…

h5实现网页跳转

h5实现网页跳转

H5实现网页跳转的方法 在HTML5中,可以通过多种方式实现网页跳转。以下是几种常见的方法: 使用<a>标签 通过超链接标签实现跳转是最传统的方式: <a href="h…

vue实现页面

vue实现页面

Vue 实现页面的基本方法 安装 Vue.js 依赖 通过 npm 或 yarn 安装 Vue.js: npm install vue # 或 yarn add vue 创建 Vue 实例 在…

vue页面实现日历

vue页面实现日历

实现基础日历布局 使用Vue的模板语法构建日历的基本HTML结构,通常需要包含星期标题和日期格子。月份切换按钮可以通过v-on绑定事件。 <template> <div cl…