perf: 优化首屏加载,快照有效时跳过骨架屏
- isLoaded 初始值根据 localStorage 快照是否存在决定 - 后续访问直接渲染真实 DOM,无需等待 chrome.storage 异步加载 - loadInitialData 仍在后台静默执行确保数据同步
This commit is contained in:
@@ -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);
|
||||
});
|
||||
/**
|
||||
* 从存储中加载初始路由数据
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user