unstable_cache
Advertencia: Esta API será reemplazada por
use cache
cuando alcance estabilidad.
unstable_cache
permite almacenar en caché los resultados de operaciones costosas, como consultas a bases de datos, y reutilizarlos en múltiples solicitudes.
Es bueno saber:
- No se admite acceder a fuentes de datos dinámicas como
headers
ocookies
dentro de un ámbito de caché. Si necesitas estos datos dentro de una función almacenada en caché, usaheaders
fuera de la función y pasa los datos dinámicos requeridos como argumento.- Esta API utiliza la Caché de Datos integrada de Next.js para persistir el resultado entre solicitudes y despliegues.
Parámetros
fetchData
: Función asíncrona que obtiene los datos que deseas almacenar en caché. Debe ser una función que devuelva unaPromise
.keyParts
: Array adicional de claves que añade más identificación a la caché. Por defecto,unstable_cache
ya utiliza los argumentos y la versión stringificada de tu función como clave de caché. Es opcional en la mayoría de los casos; solo necesitas usarlo cuando empleas variables externas sin pasarlas como parámetros. Sin embargo, es importante añadir los cierres (closures) utilizados dentro de la función si no los pasas como parámetros.options
: Objeto que controla el comportamiento de la caché. Puede contener las siguientes propiedades:tags
: Array de etiquetas que pueden usarse para controlar la invalidación de la caché. Next.js no usará esto para identificar de forma única la función.revalidate
: Número de segundos después de los cuales la caché debe revalidarse. Omite o pasafalse
para almacenar en caché indefinidamente o hasta que se llamen los métodosrevalidateTag()
orevalidatePath()
correspondientes.
Retorna
unstable_cache
devuelve una función que, al invocarse, retorna una Promise que se resuelve con los datos almacenados en caché. Si los datos no están en la caché, se invocará la función proporcionada, y su resultado se almacenará en caché y se devolverá.
Ejemplo
Historial de Versiones
Versión | Cambios |
---|---|
v14.0.0 | Se introdujo unstable_cache . |