Next.js 缓存机制测试

🔍 Next.js 的四种缓存机制

1️⃣ Request Memoization

请求记忆化 - 在一次渲染过程中自动去重相同的请求

生命周期:单次请求的渲染周期

2️⃣ Data Cache

数据缓存 - 持久化存储 fetch 请求的结果

生命周期:跨请求和部署持久化

3️⃣ Full Route Cache

全路由缓存 - 在构建时渲染并缓存整个路由

生命周期:持久化,直到重新构建或重新验证

4️⃣ Router Cache

客户端路由缓存 - 在客户端缓存访问过的路由

生命周期:用户会话期间或特定时间

📦 Data Cache(数据缓存)

测试 fetch 请求的缓存行为

  • • 默认缓存行为
  • • no-store(禁用缓存)
  • • revalidate(定时重新验证)
  • • 通过时间戳证明缓存

🗺️ Full Route Cache(全路由缓存)

测试整个路由的缓存和静态生成

  • • 静态路由(构建时缓存)
  • • 动态路由(运行时渲染)
  • • 对比渲染时间戳
  • • 查看 .next 目录的缓存文件

🔄 Request Memoization(请求记忆化)

测试同一渲染周期内的请求去重

  • • 同一组件多次相同请求
  • • 不同组件相同请求
  • • 验证只发起一次网络请求
  • • 查看日志证明去重

🧭 Router Cache(客户端缓存)

测试客户端路由的缓存行为

  • • 客户端导航的缓存
  • • 静态路由 vs 动态路由缓存时长
  • • router.refresh() 刷新
  • • Prefetch 预取行为

🖼️ Image Cache(图片缓存)

测试 Next.js Image 组件的缓存和优化

  • • 自动格式转换(WebP)
  • • 响应式图片加载
  • • 懒加载 vs Priority
  • • 服务端图片缓存

📊 缓存机制对比和总结

查看所有缓存机制的对比表格、使用场景和最佳实践

⚠️ 测试注意事项