Reactjs Apollo客户端如何+;服务器是否在同一查询中处理重复的相关节点?

Reactjs Apollo客户端如何+;服务器是否在同一查询中处理重复的相关节点?,reactjs,Reactjs,Apollo Client+Apollo Server如何在同一查询中处理重复的相关节点 假设我有这个问题: query { parents { id name child { id name secondChild { id name } } } } 响应具有重复的相关节点(ID为sc1的第二个子节点)。该节点的数据是否通过网络发送两次?还是阿波罗足够聪明,只发送一次 r

Apollo Client+Apollo Server如何在同一查询中处理重复的相关节点

假设我有这个问题:

query {
  parents {
    id
    name
    child {
      id
      name
      secondChild {
        id
        name 
      }
    }
  }
}
响应具有重复的相关节点(ID为sc1的第二个子节点)。该节点的数据是否通过网络发送两次?还是阿波罗足够聪明,只发送一次

res = [
{
    id: p1
    name: "Parent one"
    child[
    {
        id: c1
        name: "Child one"
        secondChild: {          # This is duplicated below 
            id: sc1
            name: "Second Child one"
        }
    },
    {
        id: c2
        name: "Child two"
        secondChild: {          # This is duplicated above
            id: sc1
            name: "Second Child one"  
        }
    }
    ]
}]

这个例子非常简单,但是想象一下sc1的负载更大,并且重复了很多次

我按照塔伦的建议,检查了我的阿波罗服务器的网络响应。看起来不是,阿波罗在获取重复记录时不会优化您的网络呼叫


虽然这将是一个很好的功能实现。也许你可以在他们的github中创建一个问题,看看他们是否将此作为他们的开发管道。或者,您可以尝试自己实现并创建一个拉请求,以便与我们其他人共享它。:)

只需在chrome中打开“网络”选项卡,检查您是否获得了缩短的数据或完整的数据。如果您获得了完整的数据,那么您就知道没有优化。我怀疑它会在客户端处理这个问题。但是,一旦你检查了网络标签,它应该只是确认发生了什么。对评论的任何反馈?