revalidateTag

revalidateTag позволяет очищать кэшированные данные по запросу для определенного тега кэша.

Полезно знать:

  • revalidateTag аннулирует кэш только при следующем посещении пути. Это означает, что вызов revalidateTag с динамическим сегментом маршрута не приведет к немедленному массовому повторному валидированию. Аннулирование происходит только при следующем посещении пути.

Параметры

revalidateTag(tag: string): void;
  • tag: Строка, представляющая тег кэша, связанный с данными, которые нужно перевалидировать. Должна содержать не более 256 символов. Регистр имеет значение.

Вы можете добавлять теги к fetch следующим образом:

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

Возвращаемое значение

revalidateTag не возвращает значение.

Примеры

Серверное действие (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 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() })
}
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() })
}