当前位置:首页 > React

react 实现页面的跳转

2026-01-27 10:43:37React

使用 React Router 实现页面跳转

React 本身不提供内置的路由功能,通常使用 react-router-dom 库实现页面跳转。以下是具体实现方法:

安装 react-router-dom 依赖包:

npm install react-router-dom

基础路由配置

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

import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Home from './pages/Home';
import About from './pages/About';

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </Router>
  );
}

编程式导航

在组件中使用 useNavigate hook 进行跳转:

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

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

  const handleClick = () => {
    navigate('/about'); // 跳转到 about 页面
    // navigate(-1); // 返回上一页
  };

  return <button onClick={handleClick}>Go to About</button>;
}

声明式导航

使用 <Link> 组件实现声明式导航:

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

function Navbar() {
  return (
    <nav>
      <Link to="/">Home</Link>
      <Link to="/about">About</Link>
    </nav>
  );
}

动态路由与参数传递

配置动态路由:

<Route path="/user/:id" element={<UserProfile />} />

获取路由参数:

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

function UserProfile() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

重定向

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

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

function PrivateRoute({ isAuthenticated }) {
  return isAuthenticated ? <Dashboard /> : <Navigate to="/login" />;
}

路由守卫

通过高阶组件实现路由守卫:

function ProtectedRoute({ children }) {
  const isAuth = checkAuth(); // 自定义认证逻辑
  return isAuth ? children : <Navigate to="/login" />;
}

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

嵌套路由

实现嵌套路由结构:

<Route path="/admin" element={<AdminLayout />}>
  <Route index element={<AdminDashboard />} />
  <Route path="users" element={<UserManagement />} />
</Route>

在布局组件中使用 <Outlet> 渲染子路由:

react 实现页面的跳转

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

function AdminLayout() {
  return (
    <div>
      <AdminHeader />
      <Outlet />
    </div>
  );
}

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

相关文章

Vue实现lagger页面

Vue实现lagger页面

Vue实现懒加载页面的方法 懒加载(Lazy Loading)是一种优化技术,用于延迟加载页面或组件,直到它们真正需要显示时才加载。以下是几种在Vue中实现懒加载页面的常见方法: 使用Vue Rou…

uniapp前端页面

uniapp前端页面

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

vue实现页面缓存

vue实现页面缓存

Vue 实现页面缓存的常用方法 使用 <keep-alive> 组件 <keep-alive> 是 Vue 内置组件,用于缓存动态组件或路由组件。通过包裹需要缓存的组件,可以保…

vue实现路由跳转

vue实现路由跳转

路由跳转的基本方法 在Vue中,路由跳转可以通过vue-router实现。vue-router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的路由跳转方式。 声明式导航…

jquery页面加载

jquery页面加载

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

js实现刷新页面

js实现刷新页面

刷新页面的方法 在JavaScript中,可以通过多种方式实现页面刷新。以下是几种常见的方法: 使用 location.reload() 调用 location.reload() 方法可以重新加载当…