revalidateTag
revalidateTag
允許您依需求清除特定快取標籤的快取資料。
注意事項:
revalidateTag
在 Node.js 和 Edge 執行環境 中皆可用。revalidateTag
僅在下次造訪路徑時才會失效快取。這表示使用動態路由區段呼叫revalidateTag
不會立即觸發多個重新驗證。失效僅在下次造訪路徑時才會發生。
參數
revalidateTag(tag: string): void;
tag
:表示與您要重新驗證的資料關聯的快取標籤字串。長度必須小於或等於 256 個字元。此值區分大小寫。
您可以如下將標籤新增至 fetch
fetch(url, { next: { tags: [...] } });
回傳值
revalidateTag
不會回傳任何值。
範例
伺服器動作
路由處理程式 app/api/revalidate/route.tsimport 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() })
}
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() })
}