2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Next.js】V15でCache仕様が変わる!

Last updated at Posted at 2024-08-02

一生懸命書いたNext.js Cacheシリーズですが、Next.js V15において、いくつかはデフォルトでCacheされない動きになるようです。

公式ドキュメント

  1. Request Memoization
  2. Data Cache
  3. Full Route Cache
  4. Router 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ならではの変更を垣間見れたので良しとしましょう!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?