unstable_cache
unstable_cache
le permite almacenar en caché los resultados de operaciones costosas, como consultas a bases de datos, y reutilizarlos en múltiples solicitudes.
import { getUser } from './data';
import { unstable_cache } from 'next/cache';
const getCachedUser = unstable_cache(
async (id) => getUser(id),
['my-app-user']
);
export default async function Component({ userID }) {
const user = await getCachedUser(userID);
...
}
Es bueno saber: No se admite el acceso a fuentes de datos dinámicas como
headers
ocookies
dentro de un ámbito de caché. Si necesita estos datos dentro de una función almacenada en caché, useheaders
fuera de la función almacenada en caché y pase los datos dinámicos requeridos como argumento.
Advertencia: Esta API es inestable y puede cambiar en el futuro. Proporcionaremos documentación de migración y codemods si es necesario, a medida que esta API se estabilice.
Parámetros
const data = unstable_cache(fetchData, keyParts, options)()
fetchData
: Es una función asíncrona que obtiene los datos que desea almacenar en caché. Debe ser una función que devuelva unaPromise
.keyParts
: Es un arreglo que identifica la clave de caché. Debe contener valores globalmente únicos que juntos identifiquen la clave de los datos almacenados en caché. La clave de caché también incluye los argumentos pasados a la función.options
: Es un objeto que controla el comportamiento de la caché. Puede contener las siguientes propiedades:tags
: Un arreglo de etiquetas que se pueden usar para controlar la invalidación de la caché.revalidate
: El número de segundos después de los cuales la caché debe revalidarse. Omítalo o pasafalse
para almacenar en caché indefinidamente o hasta que se llamen los métodos coincidentesrevalidateTag()
orevalidatePath()
.
Retorna
unstable_cache
retorna una función que, cuando se invoca, devuelve 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á.
Historial de versiones
Versión | Cambios |
---|---|
v14.0.0 | Se introdujo unstable_cache . |