perf(router): 并行获取用户信息和生成路由以提升性能

通过 Promise.all 并行执行用户信息获取和路由生成操作,减少页面加载等待时间
This commit is contained in:
dap
2026-02-02 10:45:34 +08:00
parent 6d42a6d1bd
commit f276b0f062

View File

@@ -92,16 +92,19 @@ function setupAccessGuard(router: Router) {
// 生成路由表 // 生成路由表
// 当前登录用户拥有的角色标识列表 // 当前登录用户拥有的角色标识列表
const userInfo = userStore.userInfo || (await authStore.fetchUserInfo()); const [userInfo, routeInfo] = await Promise.all([
const userRoles = userInfo.roles ?? []; userStore.userInfo || (await authStore.fetchUserInfo()),
generateAccess({
// 前端路由模式会需要 后端路由模式不需要
// roles: userRoles,
router,
// 则会在菜单中显示但是访问会被重定向到403
routes: accessRoutes,
}),
]);
// 生成菜单和路由 // 生成菜单和路由
const { accessibleMenus, accessibleRoutes } = await generateAccess({ const { accessibleMenus, accessibleRoutes } = routeInfo;
roles: userRoles,
router,
// 则会在菜单中显示但是访问会被重定向到403
routes: accessRoutes,
});
// 保存菜单信息和路由信息 // 保存菜单信息和路由信息
accessStore.setAccessMenus(accessibleMenus); accessStore.setAccessMenus(accessibleMenus);