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

revalidateTag

revalidateTag は、特定のキャッシュタグに対して、キャッシュされたデータをオンデマンドで削除できるようにする関数です。

Good to know:

  • revalidateTag は、Node.js および Edge ランタイムの両方で利用可能です。
  • revalidateTag は、パスが次に訪問された際にのみキャッシュを無効化します。つまり、revalidateTag を dynamic route segment で呼び出しても、すぐに多くの再検証を一度に引き起こすことはありません。無効化は、そのパスが次に訪問されたときにのみ発生します。

パラメーター

revalidateTag(tag: string): void;
  • tag: 再検証したいデータに関連付けられたキャッシュタグを表す文字列。256文字以内でなければなりません。この値は大文字と小文字を区別します。

fetch にタグを追加する方法は以下のとおりです:

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

戻り値

revalidateTag は値を返しません。

Server Actions

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