revalidateTag

revalidateTag を使用すると、特定のキャッシュタグに関連付けられたキャッシュデータをオンデマンドで削除できます。

補足情報:

  • revalidateTagNode.js および Edge ランタイムの両方で利用可能です。
  • revalidateTag は、次にそのパスが訪問されたときにのみキャッシュを無効化します。つまり、動的ルートセグメントで revalidateTag を呼び出しても、すぐに多くの再検証がトリガーされるわけではありません。無効化は次にそのパスが訪問されたときにのみ発生します。

パラメータ

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

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

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

戻り値

revalidateTag は値を返しません。

使用例

サーバーアクション

'use server'

import { revalidateTag } from 'next/cache'

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

ルートハンドラー

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() })
}
import { revalidateTag } from 'next/cache'

export async function GET(request) {
  const tag = request.nextUrl.searchParams.get('tag')
  revalidateTag(tag)
  return Response.json({ revalidated: true, now: Date.now() })
}