如果在vue组件的beforeRouteEnter钩子函数中调用API请求,会出现循环执行的问题:
beforeRouteEnter(下),从{ 登录()(()=比;{ 下一个({名称:“家”}); }).catch(()=比;{ next (); }); },
上面的代码会出现无限循环调用的问题,可能是API还没有请求完成,又一次进入路由器,调用了beforRouterEnter的原因,解决办法加一个变量,在调用API之前判断一下:
让请求=false; beforeRouteEnter(下),从{ 如果(请求){ next (); 返回; } 请求=true; 登录()(()=比;{ 下一个({名称:“家”}); }); },
在写项目的时候偶然遇到了一个问题,在进入一个城市选择页面时,城市列表总是需要一秒后才能加载出来,出现了页面抖动,在解决这个问题时想到了路由中的<代码> beforeRouteEnter 代码>方法,在路由跳转前加载数据,在网上发现有博客说可以使用如下写法来解决这个问题:
这样写是毫无效果的,经过仔细分析官方文档后发下中现的函数执行在页面安装之后,所以这种方法时是不正确的。还不如直接将数据获取绑定到创建钩子上。
正确写法如下:
这样就在跳转前获取到了数据,改写后完全解决了页面抖动的问题。
以上所述是小编给大家介绍的vue中beforeRouteEnter死循环的问题,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持。
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!