cacheLife

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

使用方法

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

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設定をコンポーネントや関数で次のように使用できます:

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より長くする必要あり

On this page