cacheLife
cacheLife
オプションは、コンポーネントや関数内、そしてuse cache
ディレクティブの範囲内で、cacheLife
関数を使用する際にカスタムキャッシュプロファイルを定義できるようにします。
使い方
プロファイルを定義するには、dynamicIO
フラグを有効にし、cacheLife
オブジェクト内にキャッシュプロファイルをnext.config.js
ファイルに追加します。例えば、blog
プロファイルは以下のようになります:
- TypeScript
- JavaScript
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
next.config.js
module.exports = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1時間
revalidate: 900, // 15分
expire: 86400, // 1日
},
},
},
}
このカスタム構成blog
をコンポーネントや関数内で次のように使用できるようになります:
- TypeScript
- JavaScript
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
}
app/actions.js
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 よりも長い必要があります。 |