Пользовательский обработчик кэша Next.js

В Next.js обработчик кэша по умолчанию для Pages и App Router использует файловую систему. Это не требует дополнительной настройки, однако вы можете кастомизировать обработчик кэша, используя поле cacheHandler в next.config.js.

next.config.js
module.exports = {
  cacheHandler: require.resolve('./cache-handler.js'),
  cacheMaxMemorySize: 0, // отключает кэширование в памяти по умолчанию
}

Ознакомьтесь с примером пользовательского обработчика кэша и узнайте больше о его реализации.

Справочник API

Обработчик кэша может реализовывать следующие методы: get, set и revalidateTag.

get()

ПараметрТипОписание
keystringКлюч для получения значения.

Возвращает закэшированное значение или null, если значение не найдено.

set()

ПараметрТипОписание
keystringКлюч для хранения данных.
dataData или nullДанные для кэширования.
ctx{ tags: [] }Теги кэша, связанные с данными.

Возвращает Promise<void>.

revalidateTag()

ПараметрТипОписание
tagstringТег кэша для ревалидации.

Возвращает Promise<void>. Узнайте больше о ревалидации данных или функции revalidateTag().

Полезно знать:

  • revalidatePath — это удобная надстройка над тегами кэша. Вызов revalidatePath приведёт к вызову вашей функции revalidateTag, после чего вы можете решить, хотите ли вы помечать ключи кэша на основе пути.

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

ВерсияИзменения
v14.1.0Переименованный cacheHandler стал стабильным.
v13.4.0incrementalCacheHandlerPath (экспериментальный) поддерживает revalidateTag.
v13.4.0incrementalCacheHandlerPath (экспериментальный) поддерживает standalone output.
v12.2.0Добавлен incrementalCacheHandlerPath (экспериментальный).