当前位置:首页 > React

react路由实现页面跳转

2026-01-27 19:09:31React

路由基础配置

在React中实现页面跳转通常使用react-router-dom库。安装依赖包:

npm install react-router-dom

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

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

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById('root')
);

路由定义与导航

在组件中定义路由路径与组件的映射关系:

import { Routes, Route } from 'react-router-dom';

function App() {
  return (
    <Routes>
      <Route path="/home" element={<HomePage />} />
      <Route path="/about" element={<AboutPage />} />
    </Routes>
  );
}

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

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

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

编程式导航

在事件处理函数中使用useNavigate钩子:

react路由实现页面跳转

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

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

  const handleLogin = () => {
    // 跳转到指定路径
    navigate('/dashboard');

    // 带参数跳转
    navigate('/profile?id=123');

    // 替换当前历史记录
    navigate('/settings', { replace: true });
  };

  return <button onClick={handleLogin}>Login</button>;
}

动态路由与参数获取

定义带参数的路由路径:

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

在目标组件中获取参数:

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

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

嵌套路由实现

通过嵌套Route组件实现布局复用:

react路由实现页面跳转

<Route path="/admin" element={<AdminLayout />}>
  <Route path="dashboard" element={<Dashboard />} />
  <Route path="users" element={<UserList />} />
</Route>

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

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

function AdminLayout() {
  return (
    <div>
      <AdminHeader />
      <Outlet />  {/* 子路由将在此渲染 */}
    </div>
  );
}

路由守卫与权限控制

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

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

// 使用方式
<Route path="/private" element={<PrivateRoute element={<PrivatePage />} />} />

404页面处理

添加通配符路由作为兜底处理:

<Route path="*" element={<NotFoundPage />} />

标签: 跳转路由
分享给朋友:

相关文章

js实现页面跳转

js实现页面跳转

使用 window.location.href 通过修改 window.location.href 实现页面跳转,直接赋值目标 URL 即可。 window.location.href = 'h…

vue实现路由守卫

vue实现路由守卫

路由守卫的基本概念 路由守卫是 Vue Router 提供的一种机制,用于在路由跳转前后执行特定的逻辑。通过路由守卫,可以实现权限控制、页面访问限制、数据预加载等功能。 全局前置守卫 使用 rout…

vue路由可以实现什么

vue路由可以实现什么

Vue 路由的核心功能 Vue Router 是 Vue.js 官方的路由管理器,主要用于构建单页面应用(SPA)。它通过管理 URL 与组件的映射关系,实现页面间的无刷新跳转。 路由的基本实现 动…

php 实现跳转

php 实现跳转

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

php 实现路由

php 实现路由

PHP 实现路由的方法 在 PHP 中实现路由功能可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 PHP 实现简单路由 通过解析 URL 并匹配对应的处理逻辑,可以实现基本的路由功能。以…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…