美文网首页
vue-router路由守卫

vue-router路由守卫

作者: 雷雨leiyu | 来源:发表于2021-05-23 17:43 被阅读0次

vue-router导航钩子

  • vue-router导航钩子的主要作用是拦截导航,让路由完成跳转或者取消;
  • 导航钩子分类:全局守卫、局部守卫、路由独享守卫;

全局守卫

  • 指的所有路由配置的组建都会被触发的钩子;
  • 钩子函数执行顺序:beforeEach、beforeResolve、afterEach;
// beforeEach:在路由跳转前触发,这个钩子作用主要是用于登录验证
const router = new VueRouter({ ... });
router.beforeEach((to, from, next) => {
  // do someting
});
/* beforeResolve:这个钩子和beforeEach类似,也是路由跳转前触发,
   但它在在beforeEach和组件内beforeRouteEnter之后,afterEach之前调用。
*/
// afterEach:和beforeEach相反,它是在路由跳转完成之后触发
router.afterEach((to, from) => {
  // do someting
});

局部守卫

  • 组件内执行的钩子函数,相当于为配置路由的组件添加的生命周期钩子函数;
  • 钩子函数执行顺序:beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave;
const comp = {
  template: `<div>This is file</div>`,
  beforeRouteEnter(to, from, next) {
    // do someting
    // 在渲染该组件的对应路由被 confirm 前调用
  },
  beforeRouteUpdate(to, from, next) {
    // do someting
    // 在当前路由改变,但是依然渲染该组件是调用
  },
  beforeRouteLeave(to, from ,next) {
    // do someting
    // 导航离开该组件的对应路由时被调用
  }
}

路由独享守卫

  • 单个路由配置的时候也可以设置的钩子函数,且只能在这个路由下起作用;
  • 它只有一个钩子函数beforeEnter;
cont router = new VueRouter({
  routes: [
  {
    path: '/file',
    component: File,
    beforeEnter: (to, from ,next) => {
      // do someting
    }
  }
  ]
});

组件路由跳转 - A路由–>B路由流程解析(局部-全局-独享-局部-全局)

  • 在A组件里调用离开守卫,A组件中的beforeRouteLeave;
  • 调用全局的beforeEach守卫, router.beforeEach;
  • 再执行B路由配置里调用beforeEnter;
  • 再执行B组件的进入守卫,B组件中beforeRouteEnter;
  • 调用全局的beforeResolve守卫(2.5+),router.beforeResolve;
  • 导航被确认;
  • 调用全局的afterEach钩子:router.afterEach;
  • 触发DOM更新。

相关文章

  • vue-router 常见导航守卫

    全局守卫vue-router全局有三个守卫 路由独享守卫如果你不想全局配置守卫的话,你可以为某些路由单独配置守卫 ...

  • 导航守卫以及keep-alive

    一 什么是导航守卫? vue-router提供的导航守卫主要用来监听监听路由的进入和离开的.vue-router提...

  • Vue - 路由守卫(路由的生命周期)

    路由守卫是什么? 官方解释:“导航”表示路由正在发生改变。正如其名,vue-router提供的导航守卫主要用来通过...

  • vue-router进阶

    导航守卫 vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航(路由发生改变才会守卫)。参数 ...

  • 续报项目总结

    技术需求: 1.部分页面需要限制在微信内登录 解决方案:使用vue-router的路由守卫由于全局使用路由守卫限制...

  • vue-router的认识

    vue-router中保护路由安全通常使用导航守卫来做,通过设置路由导航钩子函数的方式添加守卫.在里面判断用户状态...

  • vue-router导航守卫&&滚动&&路由懒加载

    导航守卫 正如其名,vue-router提供的导航守卫主要用来通过跳转或取消的方式守卫,有多种机会植入路由导航过程...

  • 2021-04-11

    vue-router 路由钩子函数(导航守卫) 路由钩子函数有三种: 全局钩子: beforeEach(全局前置守...

  • vue导航守卫

    “导航”表示路由正在发生改变。 正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航...

  • vue-router导航守卫

    vue-router的守卫可以分为三类守卫, 全局设置,路由设置,组件内部设置 全局设置 在全局的地方进行书写的,...

网友评论

      本文标题:vue-router路由守卫

      本文链接:https://www.haomeiwen.com/subject/vngxsltx.html