vue-router 鉴权 守卫

一、怎么理解vue-router
路由导航守卫
又叫路由的钩子函数又叫路由的生命周期函数
就是路由 从开始进入路径到跳转结束这个过程中 到了某个阶段会自动执行的函数

二、实现鉴权的方式分两种:
1、通过vue-router addRoutes 方法注入路由实现控制
通过请求服务端获取当前用户路由配置,编码为 vue-router 所支持的基本格式(具体如何编码取决于前后端协商好的数据格式),通过调用 this.$router.addRoutes 方法将编码好的用户路由注入到现有的 vue-router 实例中去,以实现用户路由。
addRoutes 方法仅仅是帮你注入新的路由,并没有帮你剔除其它路由!
2、通过vue-router beforeEach 钩子限制路由跳转
通过请求服务端获取当前用户路由配置,通过注册 router.beforeEach 钩子对路由的每次跳转进行管理,每次跳转都进行检查,如果目标路由不存在于当前路由中,取消跳转,转为跳转错误页。
方法1和2的区别是一个是自动的,一个是手动的。
三、路由守卫
作用:守卫页面跳转 监听页面跳转 在页面跳转前或者跳转后执行一些操作。
路由的钩子函数 有三个参数 分别是 to到哪儿去 from 从哪儿来 next执行下一步

第一种是全局的守卫 守卫所有的页面
写在 router/index.js 里
一共有两个
路由进入之前 router.beforeEach

//全局守卫 守卫所有的页面  只有登录了才能访问所有页面
// router.beforeEach((to,from,next)=>{
//   if(localStorage.getItem('user')){
//     next();
//   }else{
//     if (to.path=='/login') {
//       next();
//     }else{
//       next("/login");
//     }
//   }
// })

//路由离开之后 router.afterEach
//路由离开之后调用,已经离开了 就不需要next了
// router.afterEach((to,from,next)=>{
//   console.log(to,from);
// })
//第二种是组件级守卫 守卫某一个页面
//1、路由进入之前
// beforeRouteEnter (to, from, next) {
//   console.log("路由进入之前");
//   next();
// }
//2、路由更新之前
// beforeUpdate(to, from, next) {
//   console.log('路由更新之前');
//   next();
// },
//路由离开之前
// beforeRouteLeave (to, from, next) {
//   console.log('路由离开之前');
// }
//第三种是单个路由独享的钩子函数
// beforeRouteEnter(to, from, next) {
//   next((vm) => {
//   if (vm.store.state.username == '') {
//   vm.router.push('/');
//   }
//   });
//   },
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值