路由——路由导航守卫

一、路由导航守卫是什么?

二、全局前置守卫--router.beforeEach

1.流程图如下:

2.代码如下:

3.gitee代码仓库


前言

本篇文章主要介绍在用户登录时路由导航守卫中全局前置守卫的工作原理及过程

一、路由导航守卫是什么?

官方解释:vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航

通俗一点来说,就是在路由跳转之前做判断,符合条件就放行,不符合再做其他判断处理


二、全局前置守卫--router.beforeEach

1.流程图如下:


2.代码如下:

**将流程图与代码中的注释结合起来看思路更清晰

import router from '@/router' // 导入路由
import store from '@/store' // 导入Vuex

// 白名单--不需要 token 就可以直接访问的页面 /login /regisiter /404
const whiteList = ['/login', '/404']
// 路由导航守卫
// from 来自哪
// to 要去哪
// next() 是一个函数 必须使用
// 使用: next() 直接放行  // next('/路径名') 跳转到指定页面
router.beforeEach((to, from, next) => {
  console.log('页面跳转', '从', from.path, '到', to.path)
  // 获取 Vuex里面的 token
  const token = store.state.user.token
  // 是否有 token ?
  if (token) { // 有 token
    // 是否去登录页 ?
    if (to.path === '/login') { // 去登录页
      next('/') // 回首页
      console.log('用户已经登录,不能去登录页面')
    } else { // 不去登录页
      next() // 放行
    }
  } else { // 没有 token
    // 是否去白名单 ?
    if (whiteList.includes(to.path)) { // 去白名单
      next() // 放行
    } else { // 不去白名单
      next('/login') // 去登录页
    }
  }
})

注释:

导入路由——在这里用于获取跳转路由路径

导入Vuex——在这里时用于获取存储在Vuex中token

token——注册成功的用户,后台会在数据库的users表中分配一个唯一的token值,用户登录时会验证token

白名单——不需要 token 就可以直接访问的页面       比如:/login /regisiter /404


3.gitee代码仓库

https://gitee.com/liulin-xiaxia/router

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值