cacheLife
cacheLife
选项允许你在使用带有 use cache
指令 的 cacheLife
函数时,在组件、函数或文件级别定义自定义配置,从而实现对缓存更细粒度的控制。
使用方法
要使用 cacheLife
,需要启用 dynamicIO
标志 并在 next.config.js
文件中按如下方式定义配置:
next.config.js
module.exports = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1 小时
revalidate: 900, // 15 分钟
expire: 86400, // 1 天
},
},
},
}
现在你可以在组件、函数或文件中按如下方式使用这个自定义的 blog
配置:
app/actions.ts
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 。 | 可选 - 必须长于 revalidate |