vue-router路由守卫

2021-05-23  本文已影响0人  雷雨leiyu

vue-router导航钩子

全局守卫

// 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
});

局部守卫

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
    // 导航离开该组件的对应路由时被调用
  }
}

路由独享守卫

cont router = new VueRouter({
  routes: [
  {
    path: '/file',
    component: File,
    beforeEnter: (to, from ,next) => {
      // do someting
    }
  }
  ]
});

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

上一篇下一篇

猜你喜欢

热点阅读