当前位置:首页 > React

react实现登录页面跳转

2026-01-27 17:27:19React

React 登录页面跳转实现方法

使用 React Router 进行导航

安装 react-router-dom 包:

npm install react-router-dom

在应用中配置路由:

import { BrowserRouter as Router, Route, Routes, Navigate } from 'react-router-dom';

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/login" element={<LoginPage />} />
        <Route path="/dashboard" element={<Dashboard />} />
      </Routes>
    </Router>
  );
}

登录成功后跳转

在登录组件中使用 useNavigate hook:

react实现登录页面跳转

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

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

  const handleLogin = () => {
    // 验证逻辑...
    navigate('/dashboard'); // 跳转到仪表盘
  };

  return (
    <button onClick={handleLogin}>登录</button>
  );
}

条件跳转(保护路由)

创建受保护的路由组件:

function ProtectedRoute({ children }) {
  const isAuthenticated = localStorage.getItem('token');

  if (!isAuthenticated) {
    return <Navigate to="/login" replace />;
  }

  return children;
}

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

带状态的跳转

传递状态到目标页面:

react实现登录页面跳转

navigate('/dashboard', { state: { user: currentUser } });

// 在目标组件中获取
const location = useLocation();
const user = location.state?.user;

编程式导航替代方案

使用 useHistory(v5及以下版本):

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

function LoginPage() {
  const history = useHistory();

  const handleLogin = () => {
    history.push('/dashboard');
  };
}

登录后重定向回原页面

存储原始访问路径:

// 在拦截未登录访问时
navigate('/login', { state: { from: location.pathname } });

// 登录成功后
const location = useLocation();
const from = location.state?.from || '/dashboard';
navigate(from, { replace: true });

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

相关文章

vue页面实现

vue页面实现

Vue 页面实现方法 创建 Vue 组件 使用 Vue 单文件组件(SFC)方式创建页面,文件扩展名为 .vue。一个基本的 Vue 组件包含三个部分:模板(template)、脚本(script)和…

vue实现界面跳转

vue实现界面跳转

路由配置 在Vue项目中实现界面跳转通常依赖Vue Router。需在router/index.js中配置路由路径和组件映射关系: import { createRouter, createWebH…

vue实现单页面

vue实现单页面

Vue 实现单页面应用(SPA)的方法 Vue.js 是一个渐进式框架,适合构建单页面应用(SPA)。以下是实现 SPA 的核心步骤和关键配置。 安装 Vue 和 Vue Router 确保已安装…

vue实现页面分模块

vue实现页面分模块

Vue 实现页面分模块的方法 在 Vue 中实现页面分模块可以通过组件化、路由分割、动态加载等方式实现,以下是具体方法: 组件化拆分 将页面拆分为多个功能独立的组件,每个组件负责特定功能模块。通过…

h5页面实现vr

h5页面实现vr

实现H5页面VR效果的方法 在H5页面中实现VR(虚拟现实)效果,可以通过以下几种技术方案实现: 使用WebVR API WebVR是一个实验性的JavaScript API,提供了访问VR设备的功…

vue实现页面分页

vue实现页面分页

Vue实现页面分页的方法 使用Element UI的分页组件 Element UI提供了现成的分页组件el-pagination,适合快速集成。以下是一个示例代码: <template>…