跳到內容
API 參考函數revalidateTag

revalidateTag

revalidateTag 允許您隨選清除特定快取標籤的快取資料

要知道:

  • 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() })
}