angular2 全局路由守卫_详解vuerouter导航守卫【32】

de429de4d1a07f3ed75a3b2321a886af.gif

学习要点:1.导航守卫

本节课我们来开始了解 Vue router 的导航守卫的功能。

一.导航守卫

1. 导航守卫的作用就是跳转或取消跳转的导航功能,比如登录跳转方案;

2. 首先,第一个先来看下全局前置守卫跳转,这里采用新的项目创建;

3. 创建一个 Login.vue 的视图组件,并配置路由,用于未登录状态的跳转;

4. 在路由对象声明后,执行全局前置守卫,就是在跳转之前判断操作方案;

db98800e4f1d59ede74c8347ab4430af.png

PS:关于三个参数的作用如下:

(1) .to:进入目标的路由对象;

(2) .from:正要离开的路由对象;

(3) .next:这是个钩子函数,具体用法下面会说;

5. 模拟一个登录判断,先来一个错误例子,无限执行递归的问题;

//模拟登录状态const flag = false;//全局前置守卫router.beforeEach((to,from,next)=>{  /*    console.log(to);    console.log(from);    next();  */  //如果已登录则不要拦截  if(flag){    //继续执行跳转操作    next();  }else{    //跳转到 login 页面,但会无限递归错误    next('/login'); //或 next({name:'Login'});   }});

6. 解决无限递归问题,就是判断目标对象是否是 login 即可;

//判断是否跳转到 loginif(to.name==="Login"){  next();}else{  next('/login');}

7. 登录状态,不可以进登录页面,让其进首页;

ba4f598498b8eb852ab6844589a2a511.png

8. 全局后置钩子,一般用于路由页面加载完毕之后操作一些动作,比如取消 loading;

//全局后置钩子router.afterEach((to,from) => {  console.log('关闭loading...');});

如果您觉得有用,记得在下方点赞、关注、留言,小编会定期奉上更多的惊喜哦,您的打赏支持才是小编继续努力的动力,么么哒。

每日分享在学习过程中总结的学习经验,学习笔记,笔试题,HTML,CSS,JavaScript,jQuery教程,Vue教程,PHP教程,TinkPHP教程等,望大家能以学习为目的,每天阅读一篇文章,了解身边的技术,陪有梦想的人一起成长!

97efa2f00df145ca1e5807ee4df8dd3e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值