revalidateTag
revalidateTag
を使用すると、特定のキャッシュタグに関連付けられたキャッシュデータをオンデマンドで無効化できます。
補足:
revalidateTag
はNode.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')
}
'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() })
}