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() })
}
這有幫助嗎?