コンテンツにスキップ

cacheLife

この機能は現在カナリアチャンネルで利用可能であり、変更される可能性があります。Next.jsをアップグレードして試してみてください。GitHubでフィードバックをお寄せください。

cacheLifeオプションを使用すると、コンポーネントや関数内のcacheLife関数、またはuse cacheディレクティブのスコープ内でカスタムキャッシュプロファイルを定義できます。

使用方法

プロファイルを定義するには、cacheComponentsフラグを有効にし、next.config.jsファイルのcacheLifeオブジェクトにキャッシュプロファイルを追加します。たとえば、blogプロファイル。

next.config.ts
import type { NextConfig } from 'next'
 
const nextConfig: NextConfig = {
  cacheComponents: true,
  cacheLife: {
    blog: {
      stale: 3600, // 1 hour
      revalidate: 900, // 15 minutes
      expire: 86400, // 1 day
    },
  },
}
 
export default nextConfig

このカスタムblog構成は、コンポーネントまたは関数で次のように使用できるようになりました。

app/actions.ts
import { cacheLife } from 'next/cache'
 
export async function getCachedData() {
  'use cache'
  cacheLife('blog')
  const data = await fetch('/api/data')
  return data
}

リファレンス

構成オブジェクトには、以下の形式のキーと値があります。

プロパティ説明要件
stalenumberクライアントがサーバーをチェックせずに値をキャッシュする期間。オプション
revalidatenumberサーバーでキャッシュがリフレッシュされる頻度。再検証中は、古い値が提供される場合があります。オプション
expirenumber動的に切り替わる前に、値が古い状態のままでいられる最大期間。オプション - revalidateより長い必要があります