用途:在启用 Cache Components(cacheComponents: true)的 Next.js 项目中,提供缓存组件与部分预渲染(PPR)的编码指导。技能检测到该配置后会自动激活,作用于 React Server Components 编写、数据获取实现、含变更的 Server Actions、页面性能优化及既有组件代码审查。
主要能力:以“代码优先于配置”的思路替代旧有的 segment 配置(如 export const revalidate、export const dynamic)。将静态外壳、缓存内容与动态流式内容组合:静态部分直接输出,缓存部分通过 'use cache' 进入静态外壳,动态部分置于 <Suspense> 内在请求时流式传输。缓存 API 包括 'use cache' 指令(可置于文件、组件、函数级,且必须为 async)、cacheLife() 控制缓存时长(支持 'default'、'seconds'、'minutes'、'hours'、'days'、'weeks'、'max' 等预置,或自定义 stale/revalidate/expire)、cacheTag() 打标签、updateTag() 即时失效、revalidateTag() 后台再验证。缓存键由参数决定,不同参数产生不同缓存条目。参数排列会生成可复用子外壳:generateStaticParams 需至少提供一个参数,空数组会触发构建错误,部分参数可生成分类子外壳以复用。构建期提供反馈,如动态或未缓存数据位于 Suspense 外、在 'use cache' 内访问 cookies/headers、空 generateStaticParams 等错误,并给出修正方向。代码生成指南要求 'use cache' 置于函数体首条语句、尽早调用 cacheLife()、使用语义化标签、将 cookies()/headers() 等运行时数据移出缓存范围、为动态内容包裹 <Suspense>。
使用方式:当项目检测到 cacheComponents: true 时,该技能会在相关编码场景中主动应用对应模式;资料未提供具体的命令安装步骤。
适用场景与限制:适合 Next.js 中需要 PPR、静态外壳与动态流式混合的页面与数据获取优化。限制在于仅面向启用 Cache Components 的 Next.js 项目;所有缓存函数必须 async;请求相关数据不能进入缓存边界;README 提及的 REFERENCE.md、PATTERNS.md、TROUBLESHOOTING.md 等扩展资料未在本次资料中给出内容。