You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS按需重新验证功能对next/link组件是否生效?

关于Next.js按需缓存重新验证与next/link的兼容性问题

根据Next.js官方文档,按需缓存重新验证功能在常规<a>标签及页面刷新场景下均可正常工作,但对于使用Link from 'next/link'渲染的<a>标签,该功能的表现需要明确:

这类链接属于客户端导航场景,针对你描述的流程:

  • 用户访问首页
  • 用户点击进入Post1链接
  • 服务器端对Post1执行重新验证
  • 用户返回首页
  • 用户再次点击进入Post1链接

在默认配置下,用户在步骤5中会显示步骤2加载的旧页面。原因是next/link触发的客户端导航会将页面内容缓存到客户端内存中,默认不会主动重新请求服务器获取最新的已验证页面。

如果希望用户在客户端导航时能获取到最新内容,可以通过以下方式处理:

  • Pages Router:使用router.replace()代替Link组件触发导航,或者在页面组件中结合客户端逻辑主动重新获取数据;若放弃静态生成,也可以改用getServerSideProps确保每次请求都获取最新内容。
  • App Router(Next.js 13+):可以在服务器端执行revalidatePath或revalidateTag后,在客户端组件中调用useRouter()的refresh()方法刷新路由;也可以给Link组件添加revalidate={0}属性,强制该导航不使用缓存。

内容的提问来源于stack exchange,提问作者cbdeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:39:21