perf(*): 创作工作台 - 优化首页按需加载与画布交互并修复历史迁移冲突
This commit is contained in:
@@ -3,6 +3,7 @@ const workspaceRouteLoaders = {
|
||||
canvas: () => import("@/pages/canvas"),
|
||||
create: () => import("@/pages/create"),
|
||||
projects: () => import("@/pages/projects"),
|
||||
projectDetail: () => import("@/pages/projects/detail"),
|
||||
wallet: () => import("@/pages/wallet"),
|
||||
};
|
||||
|
||||
@@ -10,12 +11,18 @@ export const loadAssetsPage = workspaceRouteLoaders.assets;
|
||||
export const loadCanvasPage = workspaceRouteLoaders.canvas;
|
||||
export const loadCanvasProjectPage = () => import("@/pages/canvas/project");
|
||||
export const loadCreatePage = workspaceRouteLoaders.create;
|
||||
export const loadProjectDetailPage = workspaceRouteLoaders.projectDetail;
|
||||
export const loadProjectsPage = workspaceRouteLoaders.projects;
|
||||
export const loadWalletPage = workspaceRouteLoaders.wallet;
|
||||
|
||||
export function preloadWorkspaceRoute(pathnameOrSlug: string) {
|
||||
// 根路径就是创作页,预加载时仍映射到其内部模块名。
|
||||
const slug = pathnameOrSlug.replace(/^\//, "").split("/", 1)[0] || "create";
|
||||
const segments = pathnameOrSlug.replace(/^\//, "").split("/").filter(Boolean);
|
||||
const slug = segments[0] || "create";
|
||||
if (slug === "projects" && segments.length > 1) {
|
||||
void workspaceRouteLoaders.projectDetail();
|
||||
return;
|
||||
}
|
||||
const load = workspaceRouteLoaders[slug as keyof typeof workspaceRouteLoaders];
|
||||
if (load) void load();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user