コンテンツにスキップ

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 プロパティは、静的に生成されたページ、または Linkprefetch プロップが true に設定されている場合、または router.prefetch を呼び出す場合に使用されます。
    • デフォルト: 5分

知っておくと良いこと

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

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

バージョン履歴

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