当前位置:首页 > 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钩子:

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组件实现布局复用:

<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 />} />

react路由实现页面跳转

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

相关文章

vue路由实现思路

vue路由实现思路

Vue 路由实现思路 Vue 路由的核心是通过 Vue Router 库实现的单页面应用(SPA)路由管理。以下是关键实现思路和步骤: 安装 Vue Router 通过 npm 或 yarn 安装…

vue实现前端路由

vue实现前端路由

Vue 实现前端路由的方法 Vue 可以通过 Vue Router 实现前端路由管理。以下是具体实现步骤: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router: n…

vue实现点击跳转路由

vue实现点击跳转路由

vue实现点击跳转路由的方法 在Vue中实现点击跳转路由,可以通过以下几种方式完成,具体取决于项目使用的路由管理工具(如Vue Router)以及需求场景。 使用router-link组件 rout…

vue 路由 实现

vue 路由 实现

Vue 路由实现方法 Vue 路由通常通过 Vue Router 实现,它是 Vue.js 官方的路由管理器,用于构建单页应用(SPA)。以下是具体实现步骤: 安装 Vue Router 通过 np…

h5实现登录页面跳转

h5实现登录页面跳转

实现登录页面跳转的基本方法 使用HTML5和JavaScript实现登录页面跳转,可以通过表单提交或JavaScript事件触发。以下是几种常见方式: 表单提交跳转 在HTML中创建一个表单,通过a…

vue路由实现

vue路由实现

Vue 路由实现方法 安装 Vue Router 在项目中安装 Vue Router 依赖包: npm install vue-router 配置路由 在 src 目录下创建 router/ind…