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

标签 reactjs

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

假设我有这个查询:

query {
  parents {
    id
    name
    child {
      id
      name
      secondChild {
        id
        name 
      }
    }
  }
}

响应有重复的相关节点(ID 为 sc1 的 secondaryChild 节点)。该节点的数据是否通过网络发送了两次?或者 Apollo 足够聪明,只发送一次吗?

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 的有效负载更大并且重复了很多次。

最佳答案

我按照 Tarun 的建议检查了对我的 apollo 服务器的网络响应。看起来不行,Apollo 在获取重复记录时不会优化您的网络调用。

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

关于reactjs - Apollo Client + Server 如何处理同一查询中重复的相关节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50361564/

相关文章:

css - 如何将变量传递给 React 中的内联 css 函数

css - 如何在同一行显示文本和组件文本

reactjs - react-app-rewire 的 npm start run 问题

javascript - 你如何测试 enzyme/mocha/chai 中 div 或其他元素的含量?

javascript - 没有在 React-Router 中调用 onEnter

reactjs - 将反向 channel 与 React Client - Bot 框架结合使用

reactjs - React Hook "useCategory"无法在回调内调用

reactjs - 如何从 react 中的子标签访问数据

javascript - 如何制作一个可以在没有数据的情况下渲染然后用数据渲染的 react 组件?

reactjs - 如何让 React 组件等待 redux 存储变量设置?