メインコンテンツまでスキップ

cacheLife

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

使い方

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

next.config.ts
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
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よりも長い必要があります。