跳到內容

cacheLife

此功能目前在 Canary 管道中提供,並且可能會變更。請嘗試升級 Next.js,並在 GitHub 上分享您的意見回饋。

當您在元件或函數內部使用 cacheLife 函數,以及在 use cache 指令 的範圍內時,cacheLife 選項可讓您定義自訂快取設定檔

用法

若要定義設定檔,請啟用 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
}

參考

配置物件具有以下格式的鍵值

屬性描述需求
stalenumber客戶端應快取值而不檢查伺服器的持續時間。選填
revalidatenumber快取應在伺服器上重新整理的頻率;重新驗證時可能會提供過時的值。選填
expirenumber值在切換為動態之前可以保持過時的最大持續時間。選填 - 必須長於 revalidate