From f276b0f062232ab1df2c42d4944ae468bdf94a1d Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Mon, 2 Feb 2026 10:45:34 +0800 Subject: [PATCH] =?UTF-8?q?perf(router):=20=E5=B9=B6=E8=A1=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E5=92=8C=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=B7=AF=E7=94=B1=E4=BB=A5=E6=8F=90=E5=8D=87=E6=80=A7?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 通过 Promise.all 并行执行用户信息获取和路由生成操作,减少页面加载等待时间 --- apps/web-antd/src/router/guard.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/apps/web-antd/src/router/guard.ts b/apps/web-antd/src/router/guard.ts index a1ad6d88..5e846faf 100644 --- a/apps/web-antd/src/router/guard.ts +++ b/apps/web-antd/src/router/guard.ts @@ -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);