perf: 优化首屏加载,快照有效时跳过骨架屏

- isLoaded 初始值根据 localStorage 快照是否存在决定
- 后续访问直接渲染真实 DOM,无需等待 chrome.storage 异步加载
- loadInitialData 仍在后台静默执行确保数据同步
This commit is contained in:
雨霖铃
2026-05-21 22:46:05 +08:00
parent 141e206b62
commit bb27577278
+8 -2
View File
@@ -152,8 +152,14 @@ export function RouterProvider({
);
return mergeWithDefaults(snapshot, getDefaultPageOrder());
});
// 加载完成标识
const [isLoaded, setIsLoaded] = useState(false);
// 加载完成标识:如果快照数据有效,直接标记为已加载,避免首屏骨架屏
const [isLoaded, setIsLoaded] = useState(() => {
const snapshotKey = localStorage.getItem(`snapshot/${syncKey as string}`);
const snapshotVisible = localStorage.getItem(`snapshot/${visiblePagesKey as string}`);
const snapshotOrder = localStorage.getItem(`snapshot/${pageOrderKey as string}`);
// 快照数据存在且通过校验,说明之前已加载过,可跳过骨架屏
return !!(snapshotKey && snapshotVisible && snapshotOrder);
});
/**
* 从存储中加载初始路由数据
*/