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
}
參考
配置物件具有以下格式的鍵值
屬性 | 值 | 描述 | 需求 |
---|---|---|---|
stale | number | 客戶端應快取值而不檢查伺服器的持續時間。 | 選填 |
revalidate | number | 快取應在伺服器上重新整理的頻率;重新驗證時可能會提供過時的值。 | 選填 |
expire | number | 值在切換為動態之前可以保持過時的最大持續時間。 | 選填 - 必須長於 revalidate |
這有幫助嗎?