Antes de cada gancho, próximo ('/ login') problema de salto, o loop sem fio causa o problema de tamanho máximo da pilha de chamadas excedido

Faz muito tempo que não escrevo vue, e hoje de repente cometi um pequeno erro fatal. O código é o seguinte:

routes.beforeEach((to, from, next) => {
  if (sessionStorage.getItem('token')) {
    next();
  } else {
    next('/login');
  }
});

Parecia que estava tudo bem à primeira vista, mas caiu em um loop infinito, que finalmente fez a pilha transbordar.

Motivo: o endereço atual, que é o endereço / login, não foi excluído, o que causou uma chamada de loop.

A solução é a seguinte:

routes.beforeEach((to, from, next) => {
  if (sessionStorage.getItem('token')) {
    next();
  } else {
    //如果是登录页面路径,就直接next()
    if (to.path === '/login') {
      next();
    } else {
      next('/login');
    }
  }
});

Determine se é uma página de login e deixe-a ir, para que não haja um loop infinito.

Acho que você gosta

Origin blog.csdn.net/qq_36850813/article/details/103032651
Recomendado
Clasificación