Spec-Zone.ru › Next.js

unstable_cache

unstable_cache позволяет кэшировать результаты дорогостоящих операций, таких как запросы к базе данных, и повторно использовать их в нескольких запросах.

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);
  ...
}

Важно знать: Доступ к динамическим источникам данных, таким как headers или cookies внутри области кэша не поддерживается. Если вам нужны эти данные внутри кэшируемой функции, используйте headers вне кэшируемой функции и передайте необходимые динамические данные в качестве аргументов.

Предупреждение: Этот API нестабилен и может быть изменён в будущем. Мы предоставим документацию по миграции и модификации кода, если это потребуется, по мере стабилизации этого API.

Параметры

const data = unstable_cache(fetchData, keyParts, options)()
  • fetchData: Это асинхронная функция, которая извлекает данные, которые вы хотите кэшировать. Она должна быть функцией, возвращающей Promise.
  • keyParts: Это массив, идентифицирующий кэшированный ключ. Он должен содержать глобально уникальные значения, которые вместе идентифицируют ключ кэшированных данных. Ключ кэша также включает аргументы, переданные в функцию.
  • options: Это объект, который управляет поведением кэша. Он может содержать следующие свойства:
    • tags: Массив тегов, которые могут использоваться для управления аннулированием кэша.
    • revalidate: Количество секунд, после которых кэш должен быть перепроверен. Опустите или передайте false для кэширования до бесконечности или до тех пор, пока не будут вызваны соответствующие методы revalidateTag() или revalidatePath().

Возвращаемое значение

unstable_cache возвращает функцию, которая при вызове возвращает Promise, разрешающийся к кэшированным данным. Если данных нет в кэше, будет вызвана предоставленная функция, и её результат будет кэширован и возвращён.

История версий

Версия Изменения
v14.0.0 unstable_cache введена.

© 2024 Vercel, Inc.
Licensed under the MIT License.
https://nextjs.org/docs/app/api-reference/functions/unstable_cache

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API