revalidateTag
revalidateTag
permite purgar datos en caché bajo demanda para una etiqueta de caché específica.
Es bueno saber:
revalidateTag
está disponible tanto en entornos de ejecución Node.js como Edge.revalidateTag
solo invalida la caché cuando la ruta es visitada nuevamente. Esto significa que llamar arevalidateTag
con un segmento de ruta dinámico no activará inmediatamente muchas revalidaciones. La invalidación solo ocurre cuando la ruta es visitada nuevamente.
Parámetros
revalidateTag(tag: string): void;
tag
: Una cadena que representa la etiqueta de caché asociada con los datos que deseas revalidar. Debe tener 256 caracteres o menos. Este valor distingue entre mayúsculas y minúsculas.
Puedes agregar etiquetas a fetch
de la siguiente manera:
fetch(url, { next: { tags: [...] } });
Retorno
revalidateTag
no retorna ningún valor.
Ejemplos
Acción de Servidor (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')
}
Manejador de Ruta (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() })
}