vue中router.beforeEach() 的一个坑

本文详细解析了Vue中router.beforeEach()的正确使用方法,避免因next()调用不当而导致的死循环问题,并通过具体案例展示了如何实现合理的路由跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          在使用路由守卫的时候,不知道你们碰到没router.beforeEach()会出现一个死循环的问题。 其实问题很简单:

               也就是说       beforeEach()必须调用next(),    否则就会出现无限循环,
            next() 和 next('xxx') 是不一样的,区别就是前者不会再次调用router.beforeEach(),后者会!!!

          小的案例 :    登录页('/login')    首页('/')

            router.beforeEach((to, from, next) => {
                       var userInfo= JSON.parse(sessionStorage.getItem('userInfoStorage'));//获取浏览器缓存的用户信息
                      if(userInfo){//如果有就直接到首页咯
                               next();
                     }else{
                          if(to.path=='/login'){//如果是登录页面路径,就直接next()
                              next();
                          }else{//不然就跳转到登录;
                              next('/login');
                          }

                       }
                   });

            这样写就不会出现死循环了。

          其实就是next()的使用没有完全理解透彻,才会导致这个死循环的问题。 

           还是建议多看看官方文档吧!!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值