vue-router 鉴权 守卫

Posted fengshaopu

tags:

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

一、模块
1.路由守卫分为:

1.全局路由守卫
2.组件内部守卫
3.路由独享守卫

全局路由守卫

所有模板都可以守卫到
to是去那个页面
from是从那个页面来
next是否进入这个页面/下一步


router.beforeEach((to,from,next)=>{
  console.log(to);
  console.log(from);
  console.log(next());
  next()
})

//全局鉴权

router.beforeEach((to, from, next) => {
   if(to.path=="/wdd"){  //进入wdd页面的时候
     if(store.state.username==""){  //如果username 没有的话就 让他返回登录页面
        router.push("dl")
    }
   }
   if(to.path=="/dl"){      // 点击进入 登录页面的时候 
     if(store.state.username){ //有数据的时候让返回上一页
       router.go(-1) 
    }
   }
   next() //全局通过
 })

组件内部守卫

  beforeRouteEnter (to, from, next) {
  注意进入路由之前,组件渲染实例还没完成,还不可以使用this访问组件 ,
  可以使用vm
    console.log(to);
    console.log(from);
    console.log(next);
    console.log(next(vm));
    console.log(this);//undefind
    next(vm => {})
  }


  beforeRouteUpdate (to, from, next) {

   // 同一页面,刷新不同数据时调用,

    }

  beforeRouteLeave (to, from, next) {

    // 离开当前路由页面时调用

    }

路由独享守卫
一样的,
to是去哪里,from是从哪里来,next是是否进入,或者是进入下一步

   {
      path: '/xqq/:id',
      name: 'xqq',
      component: () => import('./views/lo/xqq.vue'),
      beforeEnter(to,from,next){next()}
    },

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

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

vue-router --- 路由守卫类型

vue-router 导航守卫

vue-router有哪几种导航钩子( 导航守卫 )?

VueJs(12)---vue-router(导航守卫,路由元信息)

vue-router路由导航守卫