コンテンツへスキップ

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 よりも長くする必要があります。