Menu

cacheLife

cacheLifeオプションを使用すると、コンポーネントや関数内でcacheLife関数を使用する場合や、use cacheディレクティブのスコープ内でカスタムキャッシュプロファイルを定義することができます。

使用方法

プロファイルを定義するには、dynamicIOフラグを有効にし、next.config.jsファイルのcacheLifeオブジェクトにキャッシュプロファイルを追加します。例えば、blogプロファイルの場合:

next.config.ts
TypeScript
import type { NextConfig } from 'next'
 
const nextConfig: NextConfig = {
  experimental: {
    dynamicIO: true,
    cacheLife: {
      blog: {
        stale: 3600, // 1時間
        revalidate: 900, // 15分
        expire: 86400, // 1日
      },
    },
  },
}
 
export default nextConfig

このカスタムblog設定を、以下のようにコンポーネントまたは関数内で使用できます:

app/actions.ts
TypeScript
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より長くする必要があります