cacheLife
この機能は現在カナリアチャネルで利用可能であり、変更される可能性があります。Next.js をアップグレードして試用し、GitHub でフィードバックを共有してください。
cacheLife
オプションを使用すると、コンポーネントまたは関数内で cacheLife
関数を使用する場合、および use cache
ディレクティブのスコープ内で、カスタムキャッシュプロファイルを定義できます。
使用法
プロファイルを定義するには、dynamicIO
フラグを有効にし、next.config.js
ファイルの cacheLife
オブジェクトにキャッシュプロファイルを追加します。例えば、blog
プロファイルの場合:
next.config.ts
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1 hour
revalidate: 900, // 15 minutes
expire: 86400, // 1 day
},
},
},
}
export default nextConfig
このカスタム 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 | 数値 | クライアントがサーバーをチェックせずに値をキャッシュすべき期間。 | オプション |
revalidate | 数値 | サーバー上でキャッシュが更新される頻度。再検証中に古い値が提供される場合があります。 | オプション |
expire | 数値 | 値が動的に切り替わるまでに stale 状態を維持できる最大期間。 | オプション - revalidate よりも長くする必要があります。 |
この情報は役に立ちましたか?