revalidateTag

revalidateTag 允許您針對特定快取標籤,按需清除快取資料

須知事項:

  • revalidateTag 僅會在下次造訪路徑時使快取失效。這意味著使用動態路由區段呼叫 revalidateTag 不會立即觸發大量重新驗證,只有當下次造訪該路徑時才會失效。

參數

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

您可以透過以下方式為 fetch 添加標籤:

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

回傳值

revalidateTag 不會回傳任何值。

範例

伺服器動作 (Server Action)

'use server'

import { revalidateTag } from 'next/cache'

export default async function submit() {
  await addPost()
  revalidateTag('posts')
}

路由處理器 (Route Handler)

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

On this page