コンテンツへスキップ

staleTimes

この機能は現在実験的であり、変更される可能性があります。プロダクションでの使用は推奨されません。ぜひお試しいただき、GitHubでフィードバックをお寄せください。

staleTimesは、クライアントサイドのルーターキャッシュでページセグメントのキャッシュを有効にする実験的な機能です。

この実験的な機能を有効にし、カスタムの再検証時間を提供するには、実験的なstaleTimesフラグを設定します。

next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    staleTimes: {
      dynamic: 30,
      static: 180,
    },
  },
}
 
module.exports = nextConfig

staticおよびdynamicプロパティは、異なる種類のリンクプリフェッチに基づく時間(秒単位)に対応しています。

  • dynamicプロパティは、ページが静的に生成されておらず、完全にプリフェッチされていない場合(例:prefetch={true}を使用している場合)に用いられます。
    • デフォルト: 0秒(キャッシュなし)
  • staticプロパティは、静的に生成されたページ、またはLinkコンポーネントのprefetchプロパティがtrueに設定されている場合、または`router.prefetch`を呼び出す場合に使用されます。
    • デフォルト: 5分

ご存じでしたか

  • ローディング境界は、この設定で定義されたstatic期間に対して再利用可能と見なされます。
  • これは部分レンダリングには影響しません。**つまり、共有レイアウトはナビゲーションごとに自動的に再フェッチされるのではなく、変更されるページセグメントのみが再フェッチされます。**
  • これは、レイアウトシフトを防ぎ、ブラウザのスクロール位置を失わないようにするための戻る/進むキャッシュの動作を変更するものではありません。

クライアントルーターキャッシュの詳細については、こちらをご覧ください。

バージョン履歴

バージョン変更点
v15.0.0dynamic staleTimesのデフォルトが30秒から0秒に変更されました。
v14.2.0実験的なstaleTimesが導入されました。