当前位置: 首页 > article >正文

vue 路由守卫实现登陆校验拦截功能

在router.js路由文件中
beforeEnter 表示在跳转到该页面之前拦截
router.beforeEach 表示不管什么路由切换时都会执行该方法

import { createRouter, createWebHashHistory } from 'vue-router'
import Home from '../views/home/Home'
import Login from '../views/login/Login'

const routes = [{
  path: '/',
  name: 'Home',
  component: Home
}, {
  path: '/login',
  name: 'Login',
  component: Login,
  // 访问login页面之前执行
  beforeEnter (to, from, next) {
    // to 指的是即将跳转到的页面 也就是login页面
    // from 指的是上一个页面是哪里
    const { isLogin } = localStorage
    // next() 表示逻辑继续执行
    // 判断当前是否已登录 如果已经登录直接进主页 否则正常进入当前登录页面
    isLogin ? next({ name: 'Home' }) : next()
  }
}
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

// 不管什么路由切换时都会执行该方法
router.beforeEach((to, from, next) => {
  // to 表示到哪去
  // from 表示从哪来
  // 登陆时向localStorage存一下登录状态
  const { isLogin } = localStorage;
  // 如果已登录 或 当前就在登录页 可以执行下一步, 否则 跳去登录页
  (isLogin || to.name === 'Login') ? next() : next({ name: 'Login' })
})

export default router


http://www.kler.cn/a/105406.html

相关文章:

  • 源码推荐【源码好优多】
  • asp.net古代服饰系统VS开发sqlserver数据库web结构c#编程包含购物答题功能点
  • ICLR 2023丨3DSQA:3D 场景中的情景问答
  • 在虚拟机上在线安装mysql
  • JavaScript笔记(本文中将JavaScript简写为JS)
  • Node学习笔记之ORM
  • Kubernetes Etcd不可用日志:NOSPACE 的问题修复
  • 简化路径(C++解法)
  • FL Studio21.2官方重磅更新及新功能一分钟介绍
  • Android stdio 无法新建或打开AIDL文件(解决方法)
  • 关于高并发你必须知道的几个概念
  • Ubuntu设置允许root用户登录
  • vscode 通过ssh 连接虚拟机vmware(ubuntu)
  • html鼠标悬停图片放大
  • JavaScript中的可变(Mutable)和不可变(Immutable)
  • nodejs+vue购物网站设计系统-计算机毕业设计
  • 代码随想录算法训练营第2天| 977有序数组的平方、209长度最小的子数组。
  • ROS自学笔记十五:URDF工具
  • ChatGPT 与 Python Echarts 完成热力图实例
  • pycharm远程连接Linux服务器