什么是路由守卫?

路由守卫就是路由跳转的一些验证,比如登录鉴权(没有登录不能进入个人中心页)等等等

路由守卫分为三大类:

1. 全局守卫:前置守卫:beforeEach 后置钩子:afterEach

2. 单个路由守卫:独享守卫:beforeEnter

3. 组件内部守卫beforeRouteEnter beforeRouteUpdate beforeRouteLeave

所有的路由守卫都是三个参数:

to: 要进入的目标路由(去哪儿)

from: 要离开的路由(从哪来)

next: 是否进行下一步(要不要继续)

=======

next()相当于 next(true) 继续执行

不写 相当于next(false)终止执行

next(path)跳转 例如:next("/login")

注意:后置钩子afterEach没有next参数

我们来详细看看都是怎么使用的叭

全局守卫:

1、全局前置守卫beforEach

给需要守卫的路由加上: meta: { permission: true },

router.beforeEach((to, from, next) => {if (to.meta.permission) {if (sessionStorage.getItem("token")) {next();} else {alert("请先登录");next("/login");}} else {next();}
});

2、 全局后置钩子afterEach(少用)

router.afterEach((to, from) => {// to and from are both route objects.
});

单个路由守卫:

  // 首页模块路由{path: "/index",name: "index",meta: { permission: true },component: () => import("../views/Index.vue"),beforeEnter: function(to, from, next) {if (sessionStorage.getItem("token")) {next();} else {alert("请先登录");next("/login");}}},

组件内部守卫:

datacreatedmountedmethods处于平等关系

beforeRouteEnter举例说明:

  beforeRouteEnter(to, from, next) {// 在渲染该组件的对应路由被 confirm 前调用// 不!能!获取组件实例 `this`// 因为当守卫执行前,组件实例还没被创建if (sessionStorage.getItem("token")) {next();} else {alert("请先登录");next("/login");}},beforeRouteUpdate(to, from, next) {// 在当前路由改变,但是该组件被复用时调用// 可以访问组件实例 `this`},beforeRouteLeave(to, from, next) {// 导航离开该组件的对应路由时调用// 可以访问组件实例 `this`},

beforeRouteEnter 是进入前

beforeRouteUpdate 是路由变化时

beforeRouteLeave 是离开后。这个离开守卫通常用来禁止用户在还未保存修改前突然离开。该导航可以通过 next(false) 来取消。

注意:
beforeRouteEnter 守卫 不能 访问 this,因为守卫在导航确认前被调用,因此即将登场的新组件还没被创建。

完整的导航解析流程

  1. 导航被触发。
  2. 在失活的组件里调用 beforeRouteLeave 守卫。
  3. 调用全局的 beforeEach 守卫。
  4. 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。
  5. 在路由配置里调用 beforeEnter
  6. 解析异步路由组件。
  7. 在被激活的组件里调用 beforeRouteEnter
  8. 调用全局的 beforeResolve 守卫 (2.5+)。
  9. 导航被确认。
  10. 调用全局的 afterEach 钩子。
  11. 触发 DOM 更新。
  12. 调用 beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例会作为回调函数的参数传入。

配合官网了解一下

https://router.vuejs.org/zh/guide/advanced/navigation-guards.html

路由守卫-最全没有之一(亲测)相关推荐

  1. 服务器进tp5项目报nginx404错误,TP5框架在nginx环境下路由报404错误解决方法 亲测可用...

    前段时间给客户写了个TP5框架的后台,主要是API调用,上传到客户服务器后发现首页可用,但所有内页报404错误,网上一搜发现天多一样的问题,但找了很多都是不可用的,而且都是过时的,但最终还是自己试出来 ...

  2. 【钉钉直播回放下载最全教程,亲测可用!!!】

    相信大家看到重要的钉钉直播时,出于好学的本能,并且直播回放只能看12个月,希望能够保存在自己的电脑中.但是由于钉钉直播默认设置了权限,导致直播不能直接下载,那么应该如何下载呢?大家不要急,希望通过看完 ...

  3. Python+Django+Nginx+Uwsgi(史上最全步骤)(亲测)

    步骤: Python安装 第一步安装Python (很多购买的服务器linux系统中自带python2和python3,我是直接使用自带的python3.5版本的) 如果系统中没有,则自己安装,如下: ...

  4. 详解centos7 YCM YouCompleteMe自动补全安装,亲测成功

    文章经重新排版转移至以下链接 https://blog.csdn.net/csdn_kou/article/details/84633663

  5. 彻底关闭华为系统更新教程,也可以激活系统更新,最全教程,亲测

    华为P40Pro手机为例,自动出了鸿蒙系统,问题是源源不断,网络不稳定,系统不流畅,APP闪退,等等一系列问题,还是原先得EMUI 11.0.0系统好用,可是我用华为助手降级之后,还是不行,自动给你更 ...

  6. centos7虚拟机静态ip设置详细教程(超全超详细亲测有效)

    目录 为什么要设置静态ip: 第一步:获取配置静态ip需要知道的信息 第二步:修改配置文件 第三步:重启网络 为什么要设置静态ip: 设置静态ip的必要性:一般我们的虚拟机默认使用的是dhcp协议(根 ...

  7. 海康威视py和c++调用全(超精髓,亲测)

    海康威视py和c++调用全(超精髓,亲测) 前言 一.海康威视需要的SDK 二.海康威视常见报错 三.python调用海康威视摄像头 解析代码: 四.c++调用海康威视找通道数以及设备数 c++调用海 ...

  8. 最新视频打赏系统全开源+附教程/亲测可用

    正文: 最新视频打赏系统全开源+附教程/亲测,这套系统是我从别人那里拿到的,100%完整可用,今天测试防红失效了,需要修改防红API即可,程序仅供研究学习使用. 程序: lanzou.com/iSFj ...

  9. 2022最新视频打赏系统全开源版本+附教程/亲测可用

    正文: 最新视频打赏系统全开源+附教程/亲测,这套系统是我从别人那里拿到的,100%完整可用,今天测试防红失效了,需要修改防红API即可,程序仅供研究学习使用. 程序的全部演示图放到压缩包了,有兴趣的 ...

最新文章

  1. python的__new__方法和__del__方法
  2. ASP中文件上传组件ASPUpload介绍和使用方法
  3. grep递归查找头文件_Grep命令教程–如何使用递归查找在Linux和Unix中搜索文件
  4. 数据结构与算法深入学习_我最喜欢的免费课程,用于深入学习数据结构和算法...
  5. 前端学习(2883):实现事件处理函数批量绑定
  6. 给1-3年的前端 6 点诚心建议
  7. WinFrm程序使用的图片展示控件.带删除的
  8. 手动实现一个vue的mvvm,思路解析
  9. Dev c++下载、安装、使用教程(文件、项目)
  10. 福禄克FLUKE光纤测试仪OTDR OFP系列
  11. Linux内核4.14版本——mmc_blk层为sd card等创建、读写块设备流程
  12. android.graphics.bitmap jar,Android入门之画图详解
  13. SSM框架的基本概念(什么是ssm框架?)
  14. LeetCode OJ 之 Number of 1 Bits (二进制位1的个数)
  15. arduino串口绘图_Arduino IDE开发环境串口绘图仪(Serial Plotter)使用方法简介
  16. 混合云网络怎么组网搭建?
  17. java jsonpath过滤_JSONPATH json解析工具
  18. python协程基础学习
  19. Excel-VBA 快速上手(十、提示框、可输入的弹出框)
  20. 神经网络的学习(训练):损失函数(均方误差、交叉熵误差)

热门文章

  1. codeforce#420 E. Okabe and El Psy Kongroo(图论+矩阵快速幂)
  2. python操作postgre库,批量进行增删改查和计时比较效率,封装好的普通增删改查和批量增删改查类拿来即用
  3. 学计算机大一入实验室,上大一就可以做科研的上科大:充分尊重第一志愿,一半新生学计算机...
  4. 自学C/C++如何入门
  5. c语言创意作业蜂鸣器,蜂鸣器c语言程序.doc
  6. HDU 2549 壮志难酬(easy)
  7. 菜市场小程序推荐服务器,极力推荐的3款生鲜微信小程序,总有一个能用上!...
  8. Sign in with Apple(苹果授权登陆)
  9. 程序员如何准备技术面试
  10. 学历是敲门砖也是枷锁