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