revalidateTag

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

Wissenswert:

  • revalidateTag ist in beiden Node.js- und Edge-Runtimes verfügbar.
  • revalidateTag invalidiert den Cache erst, wenn der Pfad das nächste Mal aufgerufen wird. Das bedeutet, dass der Aufruf von revalidateTag mit einem dynamischen Routensegment nicht sofort viele Revalidierungen auslöst. Die Invalidierung erfolgt nur, wenn der Pfad das nächste Mal aufgerufen wird.

Parameter

revalidateTag(tag: string): void;
  • tag: Eine Zeichenkette, die den Cache-Tag repräsentiert, der mit den zu revalidierenden Daten verknüpft ist. Muss 256 Zeichen oder weniger lang sein. Die Groß-/Kleinschreibung wird beachtet.

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

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

Rückgabewert

revalidateTag gibt keinen Wert zurück.

Beispiele

Server Action

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

Route Handler

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