当前位置:首页 > 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> 组件实现声明式导航:

react 实现页面的跳转

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> 组件实现重定向:

react 实现页面的跳转

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> 渲染子路由:

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

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

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

相关文章

Vue实现lagger页面

Vue实现lagger页面

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

vue实现组织架构页面

vue实现组织架构页面

Vue 实现组织架构页面 数据准备 组织架构通常以树形结构展示,需要准备嵌套的节点数据。例如: data() { return { orgData: { id: 1,…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在 s…

vue实现页面定位

vue实现页面定位

Vue 实现页面定位的方法 使用 scrollIntoView 方法 通过 JavaScript 的 scrollIntoView 方法可以实现平滑滚动到指定元素位置。在 Vue 中,可以通过 ref…

vue实现反馈页面

vue实现反馈页面

Vue 实现反馈页面的方法 表单组件设计 使用 Vue 的 v-model 实现表单数据双向绑定,创建包含输入框、下拉框和提交按钮的基础表单结构。表单字段通常包括用户姓名、联系方式、反馈类型和详细内容…

vue实现导航跳转

vue实现导航跳转

vue-router 基本跳转方法 在 Vue 项目中实现导航跳转主要通过 vue-router 完成。安装路由依赖: npm install vue-router 在 router/index.j…