自訂 Next.js 快取處理器
在 Next.js 中,預設快取處理器 用於 Pages 和 App Router 時使用檔案系統快取。這不需要任何設定,但你可以透過在 next.config.js 中使用 cacheHandler 欄位來自訂快取處理器。
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // 停用預設的記憶體快取
}查看 自訂快取處理器 的範例並了解更多實作細節。
API 參考
快取處理器可以實作以下方法:get、set 和 revalidateTag。
get()
| 參數 | 類型 | 說明 |
|---|---|---|
key | string | 快取值的鍵。 |
回傳快取值或 null(如果找不到)。
set()
| 參數 | 類型 | 說明 |
|---|---|---|
key | string | 儲存資料的鍵。 |
data | Data 或 null | 要快取的資料。 |
ctx | { tags: [] } | 提供的快取標籤。 |
回傳 Promise<void>。
revalidateTag()
| 參數 | 類型 | 說明 |
|---|---|---|
tag | string | 要重新驗證的快取標籤。 |
回傳 Promise<void>。了解更多關於 重新驗證資料 或 revalidateTag() 函數。
注意事項:
revalidatePath是快取標籤上的一個便利層。呼叫revalidatePath會呼叫你的revalidateTag函數,然後你可以選擇是否要根據路徑標記快取鍵。
版本歷史
| 版本 | 變更 |
|---|---|
v14.1.0 | 重新命名的 cacheHandler 已穩定。 |
v13.4.0 | incrementalCacheHandlerPath(實驗性)支援 revalidateTag。 |
v13.4.0 | incrementalCacheHandlerPath(實驗性)支援獨立輸出。 |
v12.2.0 | 新增 incrementalCacheHandlerPath(實驗性)。 |