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

cacheLife

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

使用法

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