根据给出的代码,如果在localStorage中存在rolesLocal且长度大于0,那么会执行以下逻辑:\n\n1. 从rolesLocal中获取用户角色,假设为admin。\n2. 根据用户角色判断跳转的路径,路径为'/home'。\n3. 通过router.push(path)将路径跳转到'/home'。\n4. 跳转到'/home'后,会再次执行导航守卫逻辑,并进入if (to.meta.requiresAuth)的条件分支。\n5. 由于localStorage中存在token和rolesLocal,继续执行权限判断逻辑。\n6. 由于rolesLocal中包含'admin'角色,满足if (rolesLocal.includes('admin'))的条件,继续执行next(),放行到'/home'页面。\n7. 由于之前已经在'/home'页面,不需要再次跳转,所以页面停留在'/home'。\n8. 由于没有其他的代码逻辑,程序执行结束。\n\n根据以上分析,没有发现跳转到'userhome'页面或跳回'login'页面的逻辑。如果出现这种情况,可能是其他地方的代码逻辑导致的。建议检查其他与导航守卫相关的代码或路由配置,以确定是哪里引起了这个问题。

Vue.js 路由守卫权限控制问题排查与解决方案

原文地址: https://www.cveoy.top/t/topic/pR5V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录