1+ import { Suspense , lazy } from "react" ;
12import { BrowserRouter , Route , Routes } from "react-router-dom" ;
23import App from "./app/App" ;
3- import ChatPage from "./app/chat/page" ;
4- import { EnvironmentPage } from "./app/dashboard/environment" ;
5- import EnvironmentDetail from "./app/dashboard/environment/EnvironmentDetail" ;
6- // import DashboardHome from "./app/dashboard/Home";
7- import DesktopWindow from "./app/dashboard/Desktop" ;
8- import CallbackPage from "./app/login/CallbackPage" ;
9- import LoginPage from "./app/login/LoginPage" ;
10- import UiTestPage from "./app/ui/page" ;
114import ProtectedDashboardLayout from "./components/layout/ProtectedDashboardPage" ;
125
6+ // 路由懒加载
7+ const ChatPage = lazy ( ( ) => import ( "./app/chat/page" ) ) ;
8+ const EnvironmentPage = lazy ( ( ) =>
9+ import ( "./app/dashboard/environment" ) . then ( ( module ) => ( {
10+ default : module . EnvironmentPage ,
11+ } ) )
12+ ) ;
13+ const EnvironmentDetail = lazy (
14+ ( ) => import ( "./app/dashboard/environment/EnvironmentDetail" )
15+ ) ;
16+ const DesktopWindow = lazy ( ( ) => import ( "./app/dashboard/Desktop" ) ) ;
17+ const CallbackPage = lazy ( ( ) => import ( "./app/login/CallbackPage" ) ) ;
18+ const LoginPage = lazy ( ( ) => import ( "./app/login/LoginPage" ) ) ;
19+ const UiTestPage = lazy ( ( ) => import ( "./app/ui/page" ) ) ;
20+
21+ const LoadingFallback = ( ) => (
22+ < div className = "flex h-screen w-full items-center justify-center bg-gray-50" >
23+ < div className = "h-8 w-8 animate-spin rounded-full border-4 border-gray-200 border-t-blue-500" > </ div >
24+ </ div >
25+ ) ;
26+
1327export default function Router ( ) {
1428 return (
1529 < BrowserRouter >
16- < Routes >
17- { /* 根路径 - App 组件根据登录状态分流 */ }
30+ < Suspense fallback = { < LoadingFallback /> } >
31+ < Routes >
32+ { /* 根路径 - App 组件根据登录状态分流 */ }
1833 < Route path = "/" element = { < App /> } />
1934
2035 { /* 公开路由 */ }
@@ -33,7 +48,8 @@ export default function Router() {
3348 element = { < EnvironmentDetail /> }
3449 />
3550 </ Route >
36- </ Routes >
51+ </ Routes >
52+ </ Suspense >
3753 </ BrowserRouter >
3854 ) ;
3955}
0 commit comments