SuperAPI AI 工具集

next-cache-components

编程与开发

查看项目

更新于 10-15 22:39

技能介绍

用途:面向 Next.js 16+ 的缓存组件能力,通过 Cache Components 启用部分预渲染(PPR),在单个路由内混合静态、缓存和动态内容。

主要能力:启用方式为在 next.config.ts 中设置 cacheComponents: true,替代旧的 experimental.ppr 标志。内容分为三类:静态(同步代码、导入、纯计算,构建时预渲染);缓存(异步数据加 'use cache');动态(运行时数据,用 Suspense 包裹)。'use cache' 可作用于文件、组件或函数层级。缓存配置文件支持默认(5 分钟 stale、15 分钟 revalidate)、'use cache: remote'、'use cache: private';cacheLife 支持内置档位 default、minutes、hours、days、weeks、max,也支持内联 stale、revalidate、expire 配置。缓存失效通过 cacheTag 打标签,updateTag 用于同一请求内立即失效,revalidateTag 用于后台重新验证。缓存键自动生成,基于构建 ID、函数 ID、可序列化参数和闭包变量。

使用限制:无法在 use cache 内访问 cookies()、headers() 或 searchParams,需要改为外提参数传入,或使用 'use cache: private'。不支持 Edge runtime(需 Node.js),不支持静态导出(需服务端)。Math.random()、Date.now() 等非确定值在 use cache 内构建时只执行一次;需要请求时随机性可在缓存外用 next/server 的 connection()。

迁移:experimental.ppr 改为 cacheComponents;dynamic='force-dynamic' 移除;dynamic='force-static' 改为 'use cache' + cacheLife('max');revalidate=N 改为 cacheLife({ revalidate: N });unstable_cache 改为 use cache 指令,不再需要手动 cache keys,tags 改用 cacheTag(),revalidate 改用 cacheLife()。

安装命令、官方文档链接与具体文件路径等细节资料暂未提供。