Cómo almacenar en caché y revalidar datos
El almacenamiento en caché (caching) es una técnica para guardar el resultado de la obtención de datos y otros cálculos, de modo que las solicitudes futuras para los mismos datos puedan servirse más rápido, sin tener que realizar el trabajo nuevamente. Mientras que la revalidación (revalidation) le permite actualizar las entradas de la caché sin tener que reconstruir toda su aplicación.
Next.js proporciona algunas APIs para manejar el almacenamiento en caché y la revalidación. Esta guía le mostrará cuándo y cómo usarlas.
fetch
Por defecto, las solicitudes fetch
no se almacenan en caché. Puede almacenar en caché solicitudes individuales configurando la opción cache
en 'force-cache'
.
Nota importante: Aunque las solicitudes
fetch
no se almacenan en caché por defecto, Next.js prerrenderizará las rutas que tienen solicitudesfetch
y almacenará en caché el HTML. Si desea garantizar que una ruta sea dinámica, use la APIconnection
.
Para revalidar los datos devueltos por una solicitud fetch
, puede usar la opción next.revalidate
.
Esto revalidará los datos después de una cantidad específica de segundos.
Consulte la referencia de la API fetch
para obtener más información.
unstable_cache
unstable_cache
le permite almacenar en caché el resultado de consultas a bases de datos y otras funciones asíncronas. Para usarlo, envuelva unstable_cache
alrededor de la función. Por ejemplo:
La función acepta un tercer objeto opcional para definir cómo se debe revalidar la caché. Acepta:
tags
: un array de etiquetas que Next.js usa para revalidar la caché.revalidate
: el número de segundos después de los cuales se debe revalidar la caché.
Consulte la referencia de la API unstable_cache
para obtener más información.
revalidateTag
revalidateTag
se usa para revalidar entradas de caché basadas en una etiqueta y después de un evento. Para usarlo con fetch
, comience etiquetando la función con la opción next.tags
:
Alternativamente, puede marcar una función unstable_cache
con la opción tags
:
Luego, llame a revalidateTag
en un Route Handler o Server Action:
Puede reutilizar la misma etiqueta en múltiples funciones para revalidarlas todas a la vez.
Consulte la referencia de la API revalidateTag
para obtener más información.
revalidatePath
revalidatePath
se usa para revalidar una ruta después de un evento. Para usarlo, llámelo en un Route Handler o Server Action:
Consulte la referencia de la API revalidatePath
para obtener más información.