Next Cache Components

⚡ PPR 混合渲染,智能缓存新范式

Next.js 16 缓存组件实现 PPR,混合静态、缓存与动态内容,提升首屏性能与开发体验

收藏
5.6k
安装
1.2k
版本
0.1.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Cache Components 是 Next.js 16+ 的核心特性,通过 cacheComponents: true 启用,替代旧版 experimental.ppr。它支持在同一路由中混合三种内容类型:静态内容(构建时预渲染)、缓存内容('use cache' 标记的异步数据)和动态内容(Suspense 包裹的运行时数据)。

关键 API:

  • 'use cache' 指令:文件级、组件级、函数级三种作用域
  • cacheLife():内置预设(minutes/hours/days/weeks/max)或自定义 {stale, revalidate, expire}
  • cacheTag() / updateTag() / revalidateTag():标签化缓存与细粒度失效
  • 'use cache: private':合规场景下允许运行时 API

显著优点:
1. 渐进式性能优化——零配置静态优化,显式标记缓存边界

2. 自动缓存键——基于函数位置、参数、闭包变量生成,无需手动维护

3. 细粒度失效——updateTag 同请求刷新 vs revalidateTag 后台刷新

4. 迁移友好——unstable_cache 有清晰替换路径

潜在缺点:

  • 不支持 Edge Runtime 和静态导出
  • 运行时 API(cookies/headers/searchParams)需解耦到缓存边界外
  • Math.random() 等值在缓存内仅执行一次,需用 connection() 延迟
  • 学习曲线:需理解缓存作用域与密钥生成规则

适合人群:
Next.js App Router 开发者,需优化 TTFB 和缓存命中率的中大型应用,特别是内容混合场景(CMS + 个性化)。

常规风险:

  • 缓存穿透:未正确标记 cacheTag 导致数据不一致
  • 密钥冲突:闭包变量变化导致意外缓存失效
  • 过度缓存:cacheLife('max') 误用造成数据陈旧

Next Cache Components 内容

手动下载zip · 3.4 kB
SKILL.mdtext/markdown
请选择文件