Menu

cacheLife

cacheLifeオプションは、use cacheディレクティブをコンポーネント、関数、またはファイルレベルで使用する際に、キャッシュをより細かく制御するためのカスタム設定を定義できます。

使用方法

cacheLifeを使用するには、dynamicIOフラグを有効にし、next.config.jsファイルで次のように設定を定義します:

next.config.js
module.exports = {
  experimental: {
    dynamicIO: true,
    cacheLife: {
      blog: {
        stale: 3600, // 1時間
        revalidate: 900, // 15分
        expire: 86400, // 1日
      },
    },
  },
}

これで、コンポーネント、関数、またはファイルで次のようにカスタムblog設定を使用できます:

app/actions.ts
import { unstable_cacheLife as cacheLife } from 'next/cache'
 
export async function getCachedData() {
  'use cache'
  cacheLife('blog')
  const data = await fetch('/api/data')
  return data
}

設定構造

設定オブジェクトは、次の形式のキー値を持ちます:

プロパティ説明要件
stalenumberサーバーに確認せずにクライアントが値をキャッシュする期間。オプション
revalidatenumberサーバー上でキャッシュを更新する頻度。再検証中は古い値が提供される可能性があります。オプション
expirenumber値が動的フェッチに切り替わるまでに古い状態を維持できる最大期間。revalidateよりも長くする必要があります。オプション - revalidateより長くする