From 2f26fd25b9cdc474e05b5e3b9c8ae4c4ffcd4469 Mon Sep 17 00:00:00 2001 From: lingniu Date: Thu, 16 Jul 2026 03:39:47 +0800 Subject: [PATCH] perf(web): bound speculative route warming --- .../apps/web/src/v2/layout/AppShell.tsx | 4 +- .../web/src/v2/routing/RouteBoundary.test.tsx | 10 ++- .../web/src/v2/routing/routeModules.test.ts | 81 ++++++++++++++----- .../apps/web/src/v2/routing/routeModules.ts | 67 +++++++++++---- .../docs/frontend-production-readiness.md | 10 ++- 5 files changed, 135 insertions(+), 37 deletions(-) diff --git a/vehicle-data-platform/apps/web/src/v2/layout/AppShell.tsx b/vehicle-data-platform/apps/web/src/v2/layout/AppShell.tsx index 67d72e00..90502f70 100644 --- a/vehicle-data-platform/apps/web/src/v2/layout/AppShell.tsx +++ b/vehicle-data-platform/apps/web/src/v2/layout/AppShell.tsx @@ -14,7 +14,7 @@ import { import { useEffect, useState } from 'react'; import { NavLink, Outlet, useLocation } from 'react-router-dom'; import { usePlatformSession } from '../auth/AuthGate'; -import { preloadRoute, scheduleIdleRoutePreloads } from '../routing/routeModules'; +import { preloadRoute, scheduleIdleRoutePreloads, shouldPreloadRouteOnIntent } from '../routing/routeModules'; const navigation = [ { to: '/monitor', label: '全局监控', icon: IconHome }, @@ -65,7 +65,7 @@ export function AppShell() { function Sidebar() { const [collapsed, setCollapsed] = useState(false); - const warmRoute = (path: string) => { void preloadRoute(path); }; + const warmRoute = (path: string) => { if (shouldPreloadRouteOnIntent()) void preloadRoute(path); }; return (