cacheLife
cacheLife
オプションを使用すると、コンポーネントや関数内でcacheLife
関数を使用する際や、use cache
ディレクティブのスコープ内でカスタムキャッシュプロファイルを定義できます。
使用方法
プロファイルを定義するには、dynamicIO
フラグを有効にし、next.config.js
ファイルのcacheLife
オブジェクトにキャッシュプロファイルを追加します。例えば、blog
プロファイルの場合:
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
module.exports = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1時間
revalidate: 900, // 15分
expire: 86400, // 1日
},
},
},
}
このカスタムblog
設定をコンポーネントや関数で次のように使用できます:
import { unstable_cacheLife as cacheLife } from 'next/cache'
export async function getCachedData() {
'use cache'
cacheLife('blog')
const data = await fetch('/api/data')
return data
}
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 より長くする必要あり |