Menu

staleTimes(实验性)

警告staleTimes 配置是一个实验性功能。此配置策略在未来可能会发生变化。

staleTimes 是一个实验性功能,允许在客户端路由器缓存中缓存页面片段。

你可以通过设置实验性 staleTimes 标志来启用此实验性功能并提供自定义的重新验证时间:

next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    staleTimes: {
      dynamic: 30,
      static: 180,
    },
  },
};
 
module.exports = nextConfig;

staticdynamic 属性对应于不同类型的链接预取的时间周期(以秒为单位)。

  • dynamic 属性用于当 Link 上的 prefetch 属性未指定或设置为 false 时。
    • 默认值:0 秒(不缓存)
  • static 属性用于当 Link 上的 prefetch 属性设置为 true,或当调用 router.prefetch 时。
    • 默认值:5 分钟

值得注意的是:

  • 加载边界 被视为在此配置中定义的 static 期间内可重用。
  • 这不会影响部分渲染意味着共享布局不会在每次导航时自动重新获取,只有发生变化的页面片段会重新获取。
  • 这不会改变后退/前进缓存行为,以防止布局偏移和防止丢失浏览器滚动位置。
  • 此配置的不同属性指的是不同级别的“新鲜度”,与片段本身是否选择静态或动态渲染无关。换句话说,当前 static 默认的 5 分钟表明数据因其不频繁重新验证而被视为静态。

你可以在这里了解更多关于客户端路由器缓存的信息。

版本历史

版本变更
v15.0.0staleTimes 启用并配置页面片段的持续时间
v14.2.0引入实验性 staleTimes