advanced
Revalidation
Обновляйте устаревший кэшированный контент по времени, path, tag, мутации, deploy или явному операционному триггеру.
Revalidation обновляет кэшированные данные или маршруты по интервалу времени, on-demand invalidation path или cache tags, привязанным к сущностям. `revalidatePath`, `revalidateTag` и `next.tags` в fetch связывают записи с чтениями.
import { revalidateTag } from 'next/cache';
export async function updatePost(id: string) {
await savePost(id);
revalidateTag('posts');
}
Операционные триггеры: webhooks, действия админки и deploy pipelines — не только time-based окна.
На интервью: invalidation при правке CMS, затрагивающей listing и detail pages.
Типовые ошибки: fetch без тегов, слишком широкий path revalidation, нет мониторинга жалоб на stale.
Компромисс: точная invalidation против blast-radius path-based очистки.
Чеклист:
- Тегируйте fetch с общим scope invalidation.
- Revalidate после успешных мутаций.
- Теги вместо сноса всего сайта.
- Логируйте revalidation в admin workflows.