revalidateTag

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

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

  • revalidateTag доступна в обоих средах выполнения Node.js и Edge.
  • 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')
}

Обработчик маршрута (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() })
}