简介

主要用来通过跳转或取消的方式守卫导航。
例如判断登录信息:没登录全部跳到登录页。判断必要操作是否进行没进行的话中断跳转。

分为三大类:全局守卫、路由守卫、组件守卫

全局守卫

1. beforeEach2. beforeResolve3. afterEach

路由守卫

1. beforeEnter

组件守卫

 1. beforeRouteEnter// 在渲染该组件的对应路由被 confirm 前调用// 不!能!获取组件实例 `this`// 因为当守卫执行前,组件实例还没被创建虽然无法直接获取组件实力但是我们可以通过next参数的回调函数获取到当前实例进行操作beforeRouteEnter: (to, from, next) => {next((vm) => {//vm就是当前组件实例});}2. beforeRouteUpdate// 在当前路由改变,但是该组件被复用时调用// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。// 可以访问组件实例 `this`3. beforeRouteLeave// 导航离开该组件的对应路由时调用// 可以访问组件实例 `this`

参数介绍

这些导航守卫涉及到的参数:to、from、next
除了全局守卫的afterEach只有to和from外其余都有三个参数

(摘抄自官网)
to: Route: 即将要进入的目标 路由对象from: Route: 当前导航正要离开的路由next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。next(false): 中断当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。next('/') 或者 next({ path: '/' }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。next(error): (2.4.0+) 如果传入 next 的参数是一个 Error 实例,则导航会被终止且该错误会被传递给 router.onError() 注册过的回调。

运行机制

上图(别问我图是谁):(流程图通过https://www.processon.com 进行绘制)

VueRouter进阶(1)-导航守卫相关推荐

  1. Vue-router进阶:导航守卫

    全局前置守卫 使用router.beforeEach注册一个全局前置守卫. const router = new VueRouter({...}) router.beforeEach((to,from ...

  2. 【vue-router②】使用导航守卫控制页面前进刷新,后退缓存

    之前给大家分享了利用keep-alive进行缓存你想要的页面,然后到后面会出现这样的问题: 我有三个组件A(组件).B(A中的弹框).C(组件),其实算是两个组件,一个弹框,现在他们的关系是这样的: ...

  3. vue-router进阶:路由使用归纳、路由导航守卫、导航守卫解析流程、

    一.定义和理解 导航守卫的作用:vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航. >>项目中应用场景举例:路由页面跳转时候进行登陆验证:路由跳转判断: 有多种机会 ...

  4. React进阶(五):导航守卫

    文章目录 一.前言 二.全局守卫 三.拓展阅读 一.前言 在<React进阶(四):路由介绍>博文中,介绍了React路由相关知识,在实际项目开发过程中,路由之间的跳转必定涉及权限.用户是 ...

  5. 十、vue-router学习笔记——认识路由、vue-router基本使用、vue-router嵌套路由、vue-router参数传递、vue-router导航守卫、keep-alive

    一.认识路由 1.1 什么是路由? 说起路由你想起了什么? 路由是一个网络工程里面的术语. 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动. - 维基百科 额, 啥玩意? ...

  6. VueRouter导航守卫

    VueRouter导航守卫 vue-router提供的导航守卫主要用来通过跳转或取消的方式守卫导航,简单来说导航守卫就是路由跳转过程中的一些钩子函数,路由跳转是一个大的过程,这个大的过程分为跳转前中后 ...

  7. vue-router 导航守卫

    导航守卫 导航守卫,也可以叫路由守卫,"导航"表示路由正在发生改变. vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航. 有多种机会植入路由导航过程中:全局 ...

  8. 2022-11-15 vue笔记-路由vue-router(四) 路由守卫(又称路由拦截,导航守卫)的定义以及示例

    文章目录 0.路由的概念 1.路由守卫的定义 定义 官方解释 路由守卫的分类 钩子函数 2.路由守卫的使用场景 3.语法:`router.beforeEach((to,from,next) => ...

  9. 路由vue-router进阶

    目录 1. 导航守卫 1.1. 全局守卫 1.2. 全局解析守卫 1.3. 全局后置钩子 1.4. 路由独享的守卫 1.5. 组件内的守卫 1.6. 完整的导航解析流程 2. 路由元信息 3. 获取数 ...

  10. 55. VUE 导航守卫

    就是 如果你想跳转路由的时候干点什么 那么就用导航守卫,例如更换标题,当然你可以用生命周期函数,在我看来不切实际.  点击首页标题换首页 ,点击个人 标题换个人: 全局导航守卫 vue-router提 ...

最新文章

  1. 转:项目报告应该汇报什么内容?
  2. python培训比较好的机构-python哪家的培训比较好?
  3. 160个Crackme003之4C大法详解
  4. Re: 从零开始的【comic spider】(序幕)
  5. 安全网关之三:IPTables
  6. JavaWeb 如何防止表单重复提交 - 使用Token,令牌
  7. php list 传递 assign('list'_,thinkphp5分页传递参数
  8. $.ajax的回调function中的this与 element-ui的this.$alert冲突问题解决
  9. css设置单行文本超出部分点点点、多行文本超出部分点点点(两种方法)/解决多行 数字不换行问题。
  10. ps界面为啥突然变大了_PS修图教程,如何把把照片变得更有质感
  11. 中学-知识与能力【5】
  12. WebGL(ThreeJS)加载乐高Ldraw模型案例
  13. iOS3DTouch功能实现
  14. catboost 的实例应用附带特征重要度打印
  15. 毕业设计 - 基于java web的在线考试系统【源码+论文】
  16. 原生js进阶版轮播图实现(走马灯效果,无缝衔接)
  17. 高考结束了以后应该做的事情(个人经历的总结)
  18. DevOps流水线实践教程|端到端研发效能提升
  19. C# 操作FireBird(火鸟)数据库
  20. 【读书笔记】《认知天性:让学习轻而易举的心理学规律》

热门文章

  1. c语言连接mysql_0基础掌握Django框架(14)MySQL相关软件
  2. php里= 啥意思,PHP natcasesort() 函数 | 菜鸟教程
  3. 如何设置二进制某一位的值_mysql参数设置--max_allowed_packet 值如何调整?
  4. 一些认识或对不清楚知识的猜想
  5. springcahce集成redis 设置过期时间
  6. fileboy v1.9 发布,文件变更监听通知系统
  7. lamp搭建wordpress后升级安装主题,提示输入ftp账号密码
  8. 光线的方向:顺光、逆光、侧光、侧顺光、侧逆光、顶光、底光
  9. 关于驰骋工作流程引擎节点访问规则的变更发布
  10. SQL Server2005如何进行数据库定期备份