跳至內容
API 參考函式revalidateTag

revalidateTag

revalidateTag 允許您依需求清除特定快取標籤的快取資料

注意事項:

  • revalidateTagNode.js 和 Edge 執行環境 中皆可用。
  • revalidateTag 僅在下次造訪路徑時才會失效快取。這表示使用動態路由區段呼叫 revalidateTag 不會立即觸發多個重新驗證。失效僅在下次造訪路徑時才會發生。

參數

revalidateTag(tag: string): void;
  • tag:表示與您要重新驗證的資料關聯的快取標籤字串。長度必須小於或等於 256 個字元。此值區分大小寫。

您可以如下將標籤新增至 fetch

fetch(url, { next: { tags: [...] } });

回傳值

revalidateTag 不會回傳任何值。

範例

伺服器動作
app/actions.ts
'use server'
 
import { revalidateTag } from 'next/cache'
 
export default async function submit() {
  await addPost()
  revalidateTag('posts')
}

路由處理程式
app/api/revalidate/route.ts
import type { NextRequest } from 'next/server'
import { revalidateTag } from 'next/cache'
 
export async function GET(request: NextRequest) {
  const tag = request.nextUrl.searchParams.get('tag')
  revalidateTag(tag)
  return Response.json({ revalidated: true, now: Date.now() })
}