staleTimes
staleTimes
— это экспериментальная функция, которая позволяет кэшировать сегменты страниц в клиентском кэше роутера (Client Router Cache).
Вы можете включить эту экспериментальную функцию и задать пользовательские времена ревалидации, установив экспериментальный флаг staleTimes
:
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
staleTimes: {
dynamic: 30,
static: 180,
},
},
}
module.exports = nextConfig
Свойства static
и dynamic
соответствуют периодам времени (в секундах) для разных типов префетчинга ссылок (link prefetching).
- Свойство
dynamic
используется, когда страница не статически сгенерирована и не полностью префетчена (например, сprefetch={true}
).- По умолчанию: 0 секунд (не кэшируется)
- Свойство
static
используется для статически сгенерированных страниц или когда свойствоprefetch
компонентаLink
установлено вtrue
, либо при вызовеrouter.prefetch
.- По умолчанию: 5 минут
Полезно знать:
- Границы загрузки (Loading boundaries) считаются переиспользуемыми в течение периода
static
, заданного в этой конфигурации.- Это не влияет на частичный рендеринг (partial rendering), то есть общие макеты не будут автоматически перезапрашиваться при каждой навигации — только изменяющийся сегмент страницы.
- Это не меняет поведение кэширования при навигации назад/вперёд (back/forward caching), чтобы предотвратить смещение макета и потерю позиции прокрутки в браузере.
Подробнее о клиентском кэше роутера можно узнать здесь.
История версий
Версия | Изменения |
---|---|
v15.0.0 | Значение по умолчанию для dynamic staleTimes изменено с 30 секунд на 0 секунд. |
v14.2.0 | Добавлена экспериментальная функция staleTimes . |