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

在Next.js App Router中,服务端initTRPC.context的.fetch()请求会被去重吗?

问题解答:服务端调用initTRPC.context上的.fetch()是否会被Next.js App Router请求去重?

结论:如果initTRPC.context上的.fetch()底层依赖Next.js提供的原生fetch API,那么会被App Router自动进行请求去重,具体依据如下:

  • 根据Next.js官方文档说明:

    父布局与其子组件之间无法传递数据。不过,你可以在一个路由中多次获取相同数据,React会自动对请求进行去重,且不会影响性能。

    该去重逻辑覆盖路由内所有基于原生fetch发起的重复请求,无论直接调用fetch还是框架封装后最终调用fetch的场景。

  • 结合TanStack Query官方文档的补充:

    Next.js已对使用fetch()的请求进行去重,但如果你的queryFn使用了其他方式,或者使用的框架不会自动去重这些请求,那么使用上述描述的单一queryClient可能是合理的,尽管会存在重复序列化的情况。

    这意味着只要TRPC的.fetch()方法最终通过原生fetch发起请求,就能享受到Next.js的去重优化;只有当它使用非fetch的请求方式(比如自定义HTTP客户端)时,才需要额外处理去重逻辑。

简言之:只要TRPC的这个.fetch()没有绕开Next.js的原生fetch,重复请求就会被自动去重。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:35:55