Menu

revalidateTag

revalidateTag ermöglicht es Ihnen, zwischengespeicherte Daten bei Bedarf für ein bestimmtes Cache-Tag zu löschen.

Hinweis:

  • revalidateTag ist in beiden Node.js- und Edge-Runtimes verfügbar.
  • revalidateTag invalidiert den Cache nur, wenn der Pfad das nächste Mal besucht wird. Das bedeutet, ein Aufruf von revalidateTag mit einem dynamischen Routensegment löst nicht sofort mehrere Neuladevorträge aus. Die Invalidierung findet erst statt, wenn der Pfad das nächste Mal besucht wird.

Parameter

revalidateTag(tag: string): void;
  • tag: Eine Zeichenfolge, die das Cache-Tag repräsentiert, das mit den zu invalidierenden Daten verknüpft ist. Muss kleiner oder gleich 256 Zeichen sein. Dieser Wert ist groß-/kleinschreibungsempfindlich.

Sie können Tags zu fetch wie folgt hinzufügen:

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

Rückgabewert

revalidateTag gibt keinen Wert zurück.

Beispiele

Server-Aktion

app/actions.ts
'use server'
 
import { revalidateTag } from 'next/cache'
 
export default async function submit() {
  await addPost()
  revalidateTag('posts')
}
app/actions.js
'use server'
 
import { revalidateTag } from 'next/cache'
 
export default async function submit() {
  await addPost()
  revalidateTag('posts')
}

Routen-Handler

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