结果像捅了 bug 窝子一样。
[ol]
首先是官网文档上一堆错误,他们的 use cache 例子给了非 async 函数可用,但是实际不可用,所以之前那种 shared component 的写法都得改(不写 use client ,但是用 hook 的方式)。ISR 等文档内容在 cacheComponent 无法使用,还没更新。
middleware.ts 改名成了 proxy.ts, 但是没测试 windows ,导致 build 之后,windows 下整个 proxy.ts 功能消失(换成 middleware.ts 又可用了)。 确认 16.0.1 修复
用文档的 cacheComponent 取代 dynamic='force-static'后发现两者行为不一致,用那个写法的动态内容全返回了 cache-control:no-store,打 debug 日志是走了缓存。原先 force-static 会返回 s-maxage 和 swr
一直改代码 build ,观察生产环境的缓存情况,结果发现跑 dev 报错... ...某些情况写"use cache",dev 就会挂掉,但是生产没问题。😂
15 时候是 SSG 的 page 全变成了 PPR ,并且加 use cache 也变不回 SSG 。
[/ol]
如果你项目里用了 next-intl 之类 route base 的 i18n,他们可能还没兼容好。next-intl 最好拿到 locale 都设置一下 setRequestLocale,不然它会去读 cookie ,导致所有的组件都要加 Suspend 或者 use cache 。
这是我就试了 2 天发现的...
这特么...
大家打算升级的缓一缓啊。。。或者不要开 cacheComponent

