cacheLife
此功能目前在 canary 频道中可用,并可能发生更改。通过升级 Next.js 尝试一下,并在 GitHub 上分享您的反馈。
cacheLife
选项允许您在使用组件或函数内部的 cacheLife
函数以及 use cache
指令 的范围内时,定义自定义缓存配置文件。
用法
要定义一个配置文件,请启用 dynamicIO
标志,并在 next.config.js
文件中的 cacheLife
对象中添加缓存配置文件。例如,一个 blog
配置文件
next.config.ts
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1 hour
revalidate: 900, // 15 minutes
expire: 86400, // 1 day
},
},
},
}
export default nextConfig
现在您可以在您的组件或函数中使用这个自定义的 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 | 数字 | 客户端应缓存值而无需检查服务器的持续时间。 | 可选 |
revalidate | 数字 | 缓存应在服务器上刷新的频率;在重新验证时可能会提供过时的值。 | 可选 |
expire | 数字 | 值在切换到动态之前可以保持过时的最长持续时间。 | 可选 - 必须长于 revalidate |
这是否有帮助?