staleTimes
staleTimes
は実験的な機能で、クライアントサイドルーターキャッシュ内のページセグメントをキャッシュすることを可能にします。
この実験的な機能を有効にし、カスタムの再検証時間を設定するには、実験的フラグ staleTimes
を設定します:
/** @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.0 | dynamic staleTimes のデフォルト値が30秒から0秒に変更されました。 |
v14.2.0 | 実験的機能 staleTimes が導入されました。 |