front/src/router/dynamic-router-state.ts
zzh d3e1c62043 perf: 优化登录进系统链路,减轻首屏与进系统阻塞
登录页延后重型依赖与角色动画,i18n 拆登录轻量包;进系统只等待动态路由与完整语言包,EP/VXE 后台预热。兼容登录响应带回 userInfo。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:13:23 +08:00

36 lines
976 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** 动态路由是否已完成 addRoute(登录编排与权限守卫共用) */
let dynamicRouterInitialized = false;
let isInitializingDynamicRouter = false;
let bootstrapPromise: Promise<void> | null = null;
export function isDynamicRouterInitialized() {
return dynamicRouterInitialized;
}
export function markDynamicRouterInitialized(value = true) {
dynamicRouterInitialized = value;
if (!value) {
bootstrapPromise = null;
isInitializingDynamicRouter = false;
}
}
export function isInitializingDynamicRouterFlag() {
return isInitializingDynamicRouter;
}
export function setInitializingDynamicRouter(value: boolean) {
isInitializingDynamicRouter = value;
}
/**
* 单例:登录进系统与权限守卫共用同一 in-flight Promise,避免重复 init。
*/
export function getDynamicRouterBootstrapPromise() {
return bootstrapPromise;
}
export function setDynamicRouterBootstrapPromise(p: Promise<void> | null) {
bootstrapPromise = p;
}