一生懸命書いたNext.js Cacheシリーズですが、Next.js V15において、いくつかはデフォルトでCacheされない動きになるようです。
間の悪いことに、Cacheシリーズ最後の記事が2024/5/22で、V15のドキュメントが5/23に出てました。
ServerサイドにおけるFetchリクエスト
Data Cacheが影響を受けます。
デフォルトがno-store
となり、Cacheをすっ飛ばして、Resourceにアクセスします。
// V14まで
fetch(`https://...`, { cache: 'force-cache' })
// V15
fetch(`https://...`, { cache: 'no-store' })
Route Handler GET Method
Cacheシリーズには書いていませんでしたが、Route Handler、つまりRest ApiのGETメソッドがデフォルトのCache仕様を止めるとのことです。
Client Router Cache
Router Cacheが影響を受けます。
In-Memoryで、React Server Component(RSC) PayloadをRouteごとにCacheする仕組みで、それがデフォルトで無効になるようです。
所感
「せっかく4種類もまとめたのに」という気持ちはありますが、今回の変更でCache周りはシンプルになったので良かったと考えています。
というのも、V14においてはCache仕様を理解していなければ、最新の情報が画面に反映されないといった問題が起きやすく、中々難易度は高かったなと。
Developer Experienceも大事にしているNext.jsならではの変更を垣間見れたので良しとしましょう!