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
}
リファレンス
設定オブジェクトは以下の形式のキー値を持ちます:
プロパティ | 値 | 説明 | 要件 |
---|---|---|---|
stale | number | クライアントがサーバーをチェックせずに値をキャッシュする期間。 | オプション |
revalidate | number | サーバー上でキャッシュを更新する頻度。再検証中は古い値が提供されることがあります。 | オプション |
expire | number | 値が動的に切り替わる前に古い状態を維持できる最大期間。 | オプション - revalidate より長くする必要があります |