cacheLife
Опция cacheLife
позволяет определять пользовательские профили кэширования при использовании функции cacheLife
внутри компонентов или функций, а также в области действия директивы use cache
.
Использование
Чтобы определить профиль, включите флаг dynamicIO
и добавьте профиль кэширования в объект cacheLife
файла next.config.js
. Например, профиль blog
:
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1 час
revalidate: 900, // 15 минут
expire: 86400, // 1 день
},
},
},
}
export default nextConfig
module.exports = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1 час
revalidate: 900, // 15 минут
expire: 86400, // 1 день
},
},
},
}
Теперь вы можете использовать эту пользовательскую конфигурацию blog
в вашем компоненте или функции следующим образом:
import { unstable_cacheLife as cacheLife } from 'next/cache'
export async function getCachedData() {
'use cache'
cacheLife('blog')
const data = await fetch('/api/data')
return data
}
import { unstable_cacheLife as cacheLife } from 'next/cache'
export async function getCachedData() {
'use cache'
cacheLife('blog')
const data = await fetch('/api/data')
return data
}
Справочник
Объект конфигурации содержит следующие ключевые значения:
Свойство | Значение | Описание | Требования |
---|---|---|---|
stale | number | Время, в течение которого клиент должен кэшировать значение без проверки сервера. | Необязательно |
revalidate | number | Частота обновления кэша на сервере; устаревшие значения могут возвращаться во время обновления. | Необязательно |
expire | number | Максимальное время, в течение которого значение может оставаться устаревшим перед переходом к динамическому режиму. | Необязательно - должно быть больше revalidate |