欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue beforeRouteEnter 死循环的问题

程序员文章站 2023-12-24 14:56:51
如果在 vue 组件的 beforeRouteEnter 钩子函数中调用 API 请求,会出现循环执行的问题: 上面的代码会出现无限循环调用的问题,可能是API还没有请求完成,又一次进入 router,调用了 beforRouterEnter 的原因,解决办法加一个变量,在调用API之前判断一下: ......

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

  1 beforerouteenter(to, from, next) {
  2   login().then(() => {
  3     next({ name: 'home' });
  4   }).catch(() => {
  5    next();
  6   });
  7 },
  8 

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

  1 let request = false;
  2 
  3 beforerouteenter(to, from, next) {
  4 	if (request) {
  5 	  next();
  6 	  return;
  7 	}
  8 
  9   request = true;
 10   login().then(() => {
 11     next({ name: 'home' });
 12   });
 15 },
 16 

上一篇:

下一篇: