expireTag
expireTag
は、特定のキャッシュタグのキャッシュされたデータをオンデマンドでパージすることができます。
Good to know:
expireTag
は、Node.js および Edge runtimes の両方で利用可能です。expireTag
は、パスが次に訪問されるときにのみキャッシュを無効にします。つまり、expireTag
を dynamic route segment とともに呼び出すことで、多くの失効を一度にすぐに引き起こすことはありません。無効化は、次にそのパスが訪問されたときにのみ発生します。
リファレンス
パラメータ
expireTag(...tags: string[]): void;
tags
: 再検証したいデータに関連するキャッシュタグを表す文字列引数。それぞれが256文字以下である必要があります。この値は大文字と小文字を区別します。
fetch
にタグを次のように追加できます:
fetch(url, { next: { tags: [...] } });
戻り値
expireTag
は値を返しません。
例
サーバーアクション
expireTag
をサーバーアクションで呼び出すことができます:
- TypeScript
- JavaScript
app/actions.ts
'use server'
import { expireTag } from 'next/cache'
export default async function submit() {
await addPost()
expireTag('posts', 'blog')
}
app/actions.js
'use server'
import { expireTag } from 'next/cache'
export default async function submit() {
await addPost()
expireTag('posts', 'blog')
}
ルートハンドラー
expireTag
をルートハンドラーで呼び出すことができます:
- TypeScript
- JavaScript
app/api/revalidate/route.ts
import type { NextRequest } from 'next/server'
import { expireTag } from 'next/cache'
export async function GET(request: NextRequest) {
const tag = request.nextUrl.searchParams.get('tag')
expireTag(tag)
return Response.json({ revalidated: true, now: Date.now() })
}
app/api/revalidate/route.js
import { expireTag } from 'next/cache'
export async function GET(request) {
const tag = request.nextUrl.searchParams.get('tag')
expireTag(tag)
return Response.json({ revalidated: true, now: Date.now() })
}