Capítulo 154 de 456
cacheTag associa uma ou mais tags a uma entrada de cache criada com use cache, permitindo invalidar seletivamente esse cache sem afetar outros dados cacheados.
cacheComponents: true em next.config.js.cacheTag(...tags): aceita um ou mais valores string; deve ser chamado dentro do escopo use cache.updateTag: usado para cenários "read-your-own-writes" (ex. formulário), disponível só dentro de Server Functions; garante que a próxima leitura já reflita a mudança.revalidateTag: usado quando é aceitável servir dado stale enquanto revalida em background, ou de fora de Server Functions (ex. Route Handler).import { cacheTag } from 'next/cache'
export async function getData() {
'use cache'
cacheTag('my-data')
const res = await fetch('https://api.example.com/data')
return res.json()
}
'use server'
import { updateTag } from 'next/cache'
export default async function submit() {
await addPost()
updateTag('my-data')
}
async function getBookingsData() {
'use cache'
const response = await fetch(`https://api.example.com/bookings?type=${type}`)
const data = await response.json()
cacheTag('bookings-data', data.id)
return data
}
updateTag para mutações do usuário que precisam de leitura imediata e consistente (forms); use revalidateTag quando stale-enquanto-revalida for aceitável.cacheTag('tag-one', 'tag-two').cacheTag controla invalidação sob demanda, geralmente usados juntos.cacheTag funciona.