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
}
設定構造
設定オブジェクトには、次の形式のキー値があります:
プロパティ | 値 | 説明 | 要件 |
---|---|---|---|
stale | number | クライアントがサーバーを確認せずに値をキャッシュする期間 | 任意 |
revalidate | number | キャッシュがサーバーでリフレッシ ュされる頻度;再検証中に古い値が提供される場合もあります | 任意 |
expire | number | 動的フェッチに切り替える前に値が古くなることができる最大期間;revalidate より長くなければなりません | 任意 - revalidate より長くする必要があります |