Пользовательский обработчик кэша Next.js
В Next.js обработчик кэша по умолчанию для Pages и App Router использует файловую систему. Это не требует дополнительной настройки, однако вы можете кастомизировать обработчик кэша, используя поле cacheHandler
в next.config.js
.
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // отключает кэширование в памяти по умолчанию
}
Ознакомьтесь с примером пользовательского обработчика кэша и узнайте больше о его реализации.
Справочник API
Обработчик кэша может реализовывать следующие методы: get
, set
и revalidateTag
.
get()
Параметр | Тип | Описание |
---|---|---|
key | string | Ключ для получения значения. |
Возвращает закэшированное значение или null
, если значение не найдено.
set()
Параметр | Тип | Описание |
---|---|---|
key | string | Ключ для хранения данных. |
data | Data или null | Данные для кэширования. |
ctx | { tags: [] } | Теги кэша, связанные с данными. |
Возвращает Promise<void>
.
revalidateTag()
Параметр | Тип | Описание |
---|---|---|
tag | string | Тег кэша для ревалидации. |
Возвращает Promise<void>
. Узнайте больше о ревалидации данных или функции revalidateTag()
.
Полезно знать:
revalidatePath
— это удобная надстройка над тегами кэша. ВызовrevalidatePath
приведёт к вызову вашей функцииrevalidateTag
, после чего вы можете решить, хотите ли вы помечать ключи кэша на основе пути.
История версий
Версия | Изменения |
---|---|
v14.1.0 | Переименованный cacheHandler стал стабильным. |
v13.4.0 | incrementalCacheHandlerPath (экспериментальный) поддерживает revalidateTag . |
v13.4.0 | incrementalCacheHandlerPath (экспериментальный) поддерживает standalone output. |
v12.2.0 | Добавлен incrementalCacheHandlerPath (экспериментальный). |