跳到内容

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
}

参考

配置对象具有以下格式的键值

属性描述要求
stalenumber客户端应缓存值而不检查服务器的持续时间。可选
revalidatenumber缓存应在服务器上刷新的频率;在重新验证时可能会提供陈旧的值。可选
expirenumber值在切换到动态之前可以保持陈旧状态的最长持续时间。可选 - 必须长于 revalidate