Open4

App Routerリーディングメモ

akfm_satoakfm_sato

雑にRouter Cache周りのリーディングメモしていく

  • prefetchCacheの中にdynamic renderingの結果が入ってなさそう
  • cache.parallelRoutesの中に入ってそう

todo

  • next.jsリポジトリのbuild結果をローカルで繋いでデバッグできるようにする
akfm_satoakfm_sato

revalidatePathが何やってるかを追ってみる

起点

以下のファイルが大元
内部的には_N_T_prefix付けただけのrevalidateTag
https://github.com/vercel/next.js/blob/canary/packages/next/src/server/web/spec-extension/revalidate-path.ts

revalidateTag

store.incrementalCache.revalidateTagを呼び出してる
https://github.com/vercel/next.js/blob/canary/packages/next/src/server/web/spec-extension/revalidate-tag.ts#L35-L36

これの実態はtag-manifest.json[tagName].revalidatedAtのタイムスタンプ更新のみ
https://github.com/vercel/next.js/blob/canary/packages/next/src/server/lib/incremental-cache/file-system-cache.ts#L125-L128

これにより次のリクエストやServer Actionの戻り値RSC生成時に更新させてるっぽい
https://github.com/vercel/next.js/blob/v14.0.5-canary.30/packages/next/src/server/lib/incremental-cache/file-system-cache.ts#L285-L287

Server ActionsがRSCを返すところは未調査
ちなこのincremental-cacheはISRと兼用の仕組み