博客
关于我
vue-router 路由守卫和执行顺序
阅读量:377 次
发布时间:2019-03-05

本文共 1346 字,大约阅读时间需要 4 分钟。

Vue Router 路由守卫详解

全局路由守卫

前置钩子 (beforeEach)

router.beforeEach((to, from, next) => {  // 可以在这里执行全局级的导航前置操作  next();});

解析守卫 (beforeResolve)

router.beforeResolve((to, from, next) => {  // 可以在这里执行全局级的路由解析守卫  next();});

后置钩子 (afterEach)

router.afterEach((to, from) => {  // 可以在这里执行全局级的导航后置操作});

路由独享的守卫

单独路由的前置钩子

const router = new VueRouter({  routes: [    {      path: '/foo',      component: Foo,      beforeEnter: (to, from, next) => {        // 可以在这里执行单独路由的导航前置操作        next();      }    }  ]});

组件内的守卫

进入守卫 (beforeRouteEnter)

beforeRouteEnter(to, from, next) {  // 在渲染该组件的对应路由被确认前调用  // 不能直接使用 `this`,因为组件实例还未创建  next();};

更新守卫 (beforeRouteUpdate)

beforeRouteUpdate(to, from, next) {  // 当前路由改变但组件被复用时调用  // 可以访问组件实例 `this`  next();};

离开守卫 (beforeRouteLeave)

beforeRouteLeave(to, from, next) {  // 导航离开该组件的对应路由时调用  // 可以访问组件实例 `this`  next();};

导航守卫的执行顺序

无导航切换的情况

  • 全局前置钩子 (beforeEach)
  • 路由独享的前置钩子 (beforeEnter)
  • 组件内的进入守卫 (beforeRouteEnter)
  • 全局解析守卫 (beforeResolve)
  • 全局后置钩子 (afterEach)
  • 有导航切换的情况

  • 组件内的离开守卫 (beforeRouteLeave)
  • 全局前置钩子 (beforeEach)
  • 组件内的更新守卫 (beforeRouteUpdate)
  • 路由独享的前置钩子 (beforeEnter)
  • 组件内的进入守卫 (beforeRouteEnter)
  • 全局解析守卫 (beforeResolve)
  • 全局后置钩子 (afterEach)
  • 导航解析流程

  • 导航被触发
  • 失活的组件执行 beforeRouteLeave
  • 全局前置钩子执行
  • 可重用的组件执行 beforeRouteUpdate
  • 路由配置执行 beforeEnter
  • 解析异步路由组件
  • 激活的组件执行 beforeRouteEnter
  • 全局解析守卫执行
  • 导航被确认
  • 全局后置钩子执行
  • DOM 更新
  • 组件实例传入 beforeRouteEnter 回调函数
  • 转载地址:http://jyxwz.baihongyu.com/

    你可能感兴趣的文章
    restFUL
    查看>>
    mybatis中like的注意
    查看>>
    经典案例oracle和mysql分别比较
    查看>>
    sqlplus的基本使用
    查看>>
    oracle删除表重复数据
    查看>>
    EditText获取焦点并显示软键盘,Textview字间距,EditText输入监听判断不大于,处理倒计时
    查看>>
    Oracle删除主表数据
    查看>>
    js中两种定时器,setTimeout和setInterval实现验证码发送
    查看>>
    Oracle常用SQL
    查看>>
    未授权异常:FATAL ERROR in native method: Unauthorized
    查看>>
    JDK安装与环境变量配置(详细基础篇)
    查看>>
    golang内存及GC分析简易方法
    查看>>
    SpringCLoud+redis+es高并发项目《十一》
    查看>>
    技术美术面试问题整理
    查看>>
    Hibernate Validator常用注解
    查看>>
    Redis分布式锁原理
    查看>>
    学习SSM中ajax如何与后台传数据
    查看>>
    【备份】求极限笔记
    查看>>
    【备份】概率论笔记备份
    查看>>
    ES6模块化与commonJS的对比
    查看>>