vue路由守卫

Posted Jmytea

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue路由守卫相关的知识,希望对你有一定的参考价值。

vue路由守卫

组件实例中的守卫,以及在更新组件的调用顺序

// 路由调用组件前
  beforeRouteEnter(to, from, next) {
    console.log("home beforeRouteEnter.....");
    //在这个函数中,还不能操作this
    console.log(this);

    // 只有在beforeRouteEnter这个守卫函数中,才可以对next传入一个函数
    next((homeComponent)=>{
      console.log('next......');
      // 在next的回调函数中,也不可以操作this
      // 但是这个函数是在所有守卫被确认之后,并且组件被调用之后执行。
      // 当前的组件对象会作为参数传入。
      console.log(this);
      console.log(homeComponent);
      homeComponent.message = 'hi!';
    });
  },
  // 路由更新组件前
  beforeRouteUpdate(to, from, next) {
    console.log("home beforeRouteUpdate....");
    next();
  },
  // 路由离开组件前
  beforeRouteLeave(to, from, next) {
    console.log("home beforeRouteLeave....");
    next(false);
  },

    // 路由独享守卫
    beforeEnter(to, from, next){
      console.log('home beforeEnter....');
      next();
    }
// 全局守卫,前置守卫
router.beforeEach((to, from, next)=>{
  console.log('beforeEach1....');

  // console.log(to);//this.$route
  // console.log(from);

  // 方式1:
  // next();//进入
  // 方式2:
  // next(false);//阻止进入
  // 方式3:
  // if(to.name === 'About'){
  //   // next('/');//重定向
  //   next({name: 'Home'});//重定向
  // }else{
  //   next();
  // }

  next();
})

以上是关于vue路由守卫的主要内容,如果未能解决你的问题,请参考以下文章

vue全局路由守卫

Vue路由守卫(全局路由守卫、路由独享守卫、组件内部守卫)

vue局部路由守卫

Vue总结第五天:vue-router (使用模块化(创建Vue组件)机制编程)router-link 标签的属性路由代码跳转懒加载路由嵌套(子路由)路由传递数据导航守卫)

Vue路由守卫详解

vue-cli 初始化创建 vue2.9.6 项目路由守卫封装axiosvuex