refactor: streamline app initialization and enhance WebSocket cleanup logic
This commit is contained in:
59
src/main.tsx
59
src/main.tsx
@@ -47,41 +47,30 @@ document.addEventListener("keydown", (event) => {
|
||||
}
|
||||
});
|
||||
|
||||
const initializeApp = async () => {
|
||||
try {
|
||||
await initializeLanguage("zh");
|
||||
const initializeApp = () => {
|
||||
const contexts = [
|
||||
<ThemeModeProvider key="theme" />,
|
||||
<LoadingCacheProvider key="loading" />,
|
||||
<UpdateStateProvider key="update" />,
|
||||
];
|
||||
|
||||
const contexts = [
|
||||
<ThemeModeProvider key="theme" />,
|
||||
<LoadingCacheProvider key="loading" />,
|
||||
<UpdateStateProvider key="update" />,
|
||||
];
|
||||
|
||||
const root = createRoot(container);
|
||||
root.render(
|
||||
<React.StrictMode>
|
||||
<ComposeContextProvider contexts={contexts}>
|
||||
<BaseErrorBoundary>
|
||||
<WindowProvider>
|
||||
<AppDataProvider>
|
||||
<RouterProvider router={router} />
|
||||
</AppDataProvider>
|
||||
</WindowProvider>
|
||||
</BaseErrorBoundary>
|
||||
</ComposeContextProvider>
|
||||
</React.StrictMode>,
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("[main.tsx] 应用初始化失败:", error);
|
||||
const root = createRoot(container);
|
||||
root.render(
|
||||
<div style={{ padding: "20px", color: "red" }}>
|
||||
应用初始化失败: {error instanceof Error ? error.message : String(error)}
|
||||
</div>,
|
||||
);
|
||||
}
|
||||
const root = createRoot(container);
|
||||
root.render(
|
||||
<React.StrictMode>
|
||||
<ComposeContextProvider contexts={contexts}>
|
||||
<BaseErrorBoundary>
|
||||
<WindowProvider>
|
||||
<AppDataProvider>
|
||||
<RouterProvider router={router} />
|
||||
</AppDataProvider>
|
||||
</WindowProvider>
|
||||
</BaseErrorBoundary>
|
||||
</ComposeContextProvider>
|
||||
</React.StrictMode>,
|
||||
);
|
||||
};
|
||||
|
||||
initializeLanguage("zh").catch(console.error);
|
||||
initializeApp();
|
||||
|
||||
// 错误处理
|
||||
@@ -94,7 +83,7 @@ window.addEventListener("unhandledrejection", (event) => {
|
||||
});
|
||||
|
||||
// 页面关闭/刷新事件
|
||||
window.addEventListener("beforeunload", async () => {
|
||||
// 强制清理所有 WebSocket 实例, 防止内存泄漏
|
||||
await MihomoWebSocket.cleanupAll();
|
||||
window.addEventListener("beforeunload", () => {
|
||||
// 同步清理所有 WebSocket 实例, 防止内存泄漏
|
||||
MihomoWebSocket.cleanupAll();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user