有効期間を決定する2つの要素
ルーターキャッシュの有効期間は、以下の2つの要素によって決まります。
セッション
- キャッシュはナビゲーション中維持される
- ページのリフレッシュ時にクリアされる
自動無効化期間
レイアウトとローディング状態のキャッシュは、特定の時間後に自動的に無効化されます。期間はリソースのプリフェッチ方法と静的生成の有無によって異なります。
| プリフェッチタイプ | 動的ページ | 静的ページ | 
|---|---|---|
| デフォルトプリフェッチ prefetch={null}または未指定 | キャッシュなし | 5分 | 
| 完全プリフェッチ prefetch={true}またはrouter.prefetch | 5分 | 5分 | 
重要なポイント
- Next.js 15以降、ページセグメントはデフォルトでキャッシュから除外されています
- ページリフレッシュはすべてのキャッシュセグメントをクリアしますが、自動無効化期間は個別のセグメントがプリフェッチされた時点からカウントされます
- 実験的なstaleTimes設定オプションを使用すると、自動無効化時間を調整できます
キャッシュの無効化方法
以下の2つの方法でルーターキャッシュを無効化できます。
Server Actionでの無効化
- 
revalidatePath()またはrevalidateTag()でデータを再検証
- 
cookies.setまたはcookies.deleteの使用(認証状態の変更などに有効)
クライアント側での無効化
- 
router.refresh()を呼び出して、現在のルートに対する新しいリクエストを作成
参考
