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 userRoles = userInfo.roles ?? [];
const [userInfo, routeInfo] = await Promise.all([
userStore.userInfo || (await authStore.fetchUserInfo()),
generateAccess({
// 前端路由模式会需要 后端路由模式不需要
// roles: userRoles,
router,
// 则会在菜单中显示但是访问会被重定向到403
routes: accessRoutes,
}),
]);
// 生成菜单和路由
const { accessibleMenus, accessibleRoutes } = await generateAccess({
roles: userRoles,
router,
// 则会在菜单中显示但是访问会被重定向到403
routes: accessRoutes,
});
const { accessibleMenus, accessibleRoutes } = routeInfo;
// 保存菜单信息和路由信息
accessStore.setAccessMenus(accessibleMenus);