メインコンテンツまでスキップ

revalidateTag

revalidateTag を使用すると、特定のキャッシュ・タグのキャッシュ・データをオンデマンドで消去できます。

Good to know:

  • revalidateTagNode.js と Edge runtimesで使用できます。
  • ravalidateTag は、パスが次に訪問されたときにのみキャッシュを無効にします。つまり、動的な Route Segment でrevalidateTagを呼び出しても、すぐに多くの再検証が一度に行われるわけではなく、無効化はパスが次に訪問されたときにのみ行われます。

Parameters

revalidateTag(tag: string): void;
  • tag: 再検証したいデータに関連付けられたキャッシュ・タグを表す文字列。256文字以下でなければなりません。

以下のようにfetchにタグをつけることができます:

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

Returns

revalidateTag は値を返しません。

Server Action

app/actions.ts
'use server'

import { revalidateTag } from 'next/cache'

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

Route Handler

app/api/revalidate/route.ts
import { 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() })
}