用途:在 kickstart-next 项目中新增或修改路由、布局与 UI 组件,或需要判断客户端组件与服务端组件的划分、以及预览模式如何加载数据时使用。
主要能力与结构:app/layout.tsx 是根布局,app/page.tsx 是首页路由。非预览状态下 app/page.tsx 是异步服务端组件,调用 getPage("/") 并把结果传给从 @/components/Page 默认导入的组件。预览路径由 components/Preview.tsx 承担,它是客户端组件("use client"),在 useEffect 中初始化实时预览,订阅 ContentstackLivePreview.onEntryChange,并在 URL 路径变化时通过 getPage(path) 重新获取数据。
页面 UI 组件:components/Page.tsx 的默认导出在别处以 Page 名称导入(import Page from "@/components/Page"),文件内实现函数名为 ContentDisplay,接线 props 时以公开名 Page 为准。它渲染 title、description,用 next/image 处理资源,通过 isomorphic-dompurify 与 dangerouslySetInnerHTML 输出净化后的富 HTML,并用 VB_EmptyBlockParentClass 处理 Visual Builder 空块状态。将 page?.$ 与 block $ 属性展开到 DOM 节点上,以便 Live Preview 绑定字段。
图片与导入:远程图片使用 next/image,远程主机名需保留在 next.config.mjs 的 images.remotePatterns 及可选环境变量 hostname 中。路径别名 @/* 按 tsconfig.json 映射到仓库根目录,例如 @/lib/contentstack、@/components/Page。
限制:资料未提供安装命令、版本要求、收费信息及更多配置细节。