页面级缓存(file 级 `use cache`)
本文件顶部声明了 "use cache", 整个页面输出是一个缓存条目(cacheLife: hours,标签 demo-page-level)。
访问量(整页缓存内冻结):1083
页面渲染时刻:2026-09-07T04:45:15.908Z
计数快照(同样冻结在缓存条目里):1
嵌套演示:/cache/page-level/nested —— layout 与 page 各自是独立的缓存条目,生命周期互不相同。
评估要点:
- 想预渲染整条路由,需要 page、layout、parallel route 每个 segment 文件都加
"use cache"(各 segment 独立成条目) - 缓存的 layout 不会缓存它渲染的 children —— children 作为插槽透传,不影响 layout 自己的条目
- 文件级指令覆盖所有导出:generateMetadata / generateStaticParams 也必须写成 async
- 整页命中时跳过整个渲染过程(连组件函数体都不执行), 粒度比组件级更粗、命中率更高,但灵活性更低
- 页面需要任何运行时数据(cookie/headers/searchParams)时, 这部分必须拆到 Suspense 内的未缓存子组件 —— 整页缓存只适合「无个性化」的页面