router.beforeEach 死循环,无法跳转到指定页面问题解决

思路:

要想解决问题思路很重要,首先要搞清楚为什么next指定了页面却没有进行正确跳转

在解决这个问题之前,我们要回归下beforeEach 。beforeEach 是router提供的全局前置导航守卫。

beforeEach 提供了3个参数:

to:到哪去,(路由对象:包含name,params,meta等属性)

from:从哪来,(路由对象:包含name,params,meta等属性)

next:这是一个可选方法参数,也是我们这次要记录的重点。这个方法可以把守卫的作用发挥的淋漓尽致,它守护每一次路由的正确走向。这里的每一次很重要。因为我们这次错误的原因就是因为忽略了每一次。引用官方文档中的一句话就是,确保 next 在任何给定的导航守卫中都被严格调用一次。说白点,就是一旦用了next(),也就意味着会再次调用router.beforeEach()。

所以这次错误的原因就是:逻辑判断没有写好就会出现,死循环,留在当前页没有跳转到我们指定的下一个页面。

找到问题了,怎么解决呢?

if...else...难道我们还不会吗?所以,方法就是把逻辑补充完成,不要有所遗漏。

问题修改示范:

死循环代码截图:

 

 

 

 

结果:

 

 

 

 无法跳转代码截图:

 

 

结果

 

 

 

正确代码:

 

posted @   lovelyclove  阅读(2633)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示