vue中beforeRouteEnter死循环的问题

  

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

        beforeRouteEnter(下),从{   登录()(()=比;{   下一个({名称:“家”});   }).catch(()=比;{   next ();   });   },   
     

上面的代码会出现无限循环调用的问题,可能是API还没有请求完成,又一次进入路由器,调用了beforRouterEnter的原因,解决办法加一个变量,在调用API之前判断一下:

        让请求=false;   beforeRouteEnter(下),从{   如果(请求){   next ();   返回;   }   请求=true;   登录()(()=比;{   下一个({名称:“家”});   });   },      

  

在写项目的时候偶然遇到了一个问题,在进入一个城市选择页面时,城市列表总是需要一秒后才能加载出来,出现了页面抖动,在解决这个问题时想到了路由中的<代码> beforeRouteEnter 方法,在路由跳转前加载数据,在网上发现有博客说可以使用如下写法来解决这个问题:

  

 vue中beforeRouteEnter死循环的问题

  

这样写是毫无效果的,经过仔细分析官方文档后发下中现的函数执行在页面安装之后,所以这种方法时是不正确的。还不如直接将数据获取绑定到创建钩子上。

  

正确写法如下:

  

 vue中beforeRouteEnter死循环的问题

  

这样就在跳转前获取到了数据,改写后完全解决了页面抖动的问题。

  

  

以上所述是小编给大家介绍的vue中beforeRouteEnter死循环的问题,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持。
  如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

vue中beforeRouteEnter死循环的问题