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

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

相关文章

css如何制作页面模糊

css如何制作页面模糊

使用 backdrop-filter 属性 通过 backdrop-filter 属性可以直接为元素背后的区域添加模糊效果。该属性需要浏览器支持(如 Chrome、Edge、Safari)。示例代码:…

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转。…

vue实现关闭页面

vue实现关闭页面

关闭当前页面的方法 在Vue中关闭当前页面通常涉及调用浏览器提供的JavaScript方法。以下是几种常见的实现方式: window.close()方法 methods: { closeWin…

vue实现页面导出

vue实现页面导出

Vue 实现页面导出为 PDF 或图片 使用 html2canvas 和 jsPDF 导出为 PDF 安装依赖库: npm install html2canvas jspdf --save 在 Vu…

vue实现悬浮页面

vue实现悬浮页面

实现悬浮页面的方法 使用Vue实现悬浮页面可以通过动态组件、CSS定位和事件监听来实现。以下是几种常见的方法: 使用CSS定位和v-show/v-if 通过CSS的position: fixed属性…

vue实现音乐页面

vue实现音乐页面

使用 Vue 实现音乐页面 项目初始化 使用 Vue CLI 或 Vite 创建一个新的 Vue 项目。确保安装了必要的依赖,如 vue-router 和 axios。 npm create vue…