逻辑处理结构不完整

例如:登录跳转,若访问其他页面时,未登录,全局守卫阻碍跳转,并跳转至登录页面,已登录,允许跳转。
缺失逻辑: 若访问登录页面,已登录则跳转至主页面,未登录则允许。

技术解释
当触发守位函数时,如果遇到next("/xxx")时,会将原本的导航中断,然后将to.path改成next("/xxx")中的地址,然后重新触发这个离开的守位函数。注意:会重新触发执行这个守位函数,而不是在这个钩子函数中继续执行。不要错误的认为next("/xxx")就直接去跳转了。所以当重新触发后就会继续执行,逻辑不完整就会造成死循环或不跳转等错误。

router.beforeEach((to, from, next) => {
  if (to.name !== 'login') {
    if (login) next()
    else next({ path: '/login' })
  } else {
    if (login) next({ name: 'home' })
    else next()
  }
})
Logo

前往低代码交流专区

更多推荐