手机版

vue中的beforeRouteEnter无限循环问题

时间:2021-08-25 来源:互联网 编辑:宝哥软件园 浏览:

如果在vue组件的beforeRouteEnter钩子函数中调用API请求,会出现循环执行的问题:

beforeRouteEnter(至、自、下){ login()。然后(()={ next({ name : ' home ' });}).catch(()={ next();});},上面的代码会有无限循环调用的问题,这可能就是API还没有完成请求,再次进入路由器并调用beforRouterEnter的原因。解决方法是在调用API之前添加一个变量并进行判断:

let request=falsebeforeRouteEnter,from,next){ if(request){ next();返回;}请求=真;登录()。然后(()={ next({ name : ' home ' });});},ps:对vue中beforeRouteEnter的误解

当我写这个项目时,我遇到了一个问题。当我进入一个城市选择页面时,城市列表总是需要一秒钟才能加载,并且有页面抖动。解决这个问题的时候,想到了路由中的beforeRouteEnter方法,在路由跳转之前加载数据。我在网上找到一个博客,说我可以用下面的文字来解决这个问题:

这样写没用。仔细分析官方文档后发现,下一步中的功能是在页面挂载后执行的,所以这种方法是不正确的。最好将数据采集直接绑定到create hook。

正确的写法如下:

这样,我们在跳转前得到数据,彻底解决了重写后页面抖动的问题。

摘要

以上就是边肖介绍的vue中beforeRouteEnter的无限循环,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!

版权声明:vue中的beforeRouteEnter无限循环问题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。