reactjs - Apollo Client + Server 如何处理同一个查询中重复的相关节点?
问题描述
Apollo Client + Apollo Server 如何处理同一个查询中重复的相关节点?
假设我有这个查询:
query {
parents {
id
name
child {
id
name
secondChild {
id
name
}
}
}
}
响应具有重复的相关节点(ID 为 sc1 的 secondChild 节点)。该节点的数据是否通过网络发送了两次?还是阿波罗足够聪明,只发送一次?
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 在获取重复记录时不会优化您的网络调用。
虽然这将是一个很好的功能。也许你可以在他们的 github 上用这个建议创建一个问题,看看他们是否把它作为他们的开发管道。或者您可以尝试自己实现并创建一个拉取请求以与我们其他人分享。:)
推荐阅读
- reactjs - setState 在页面加载之前没有从 api 设置初始值
- sql-server - SQL Server 作业甘特图
- javascript - 用 'e' Jquery 连接字符串
- java - 在解决有关 Java 中的语句和表达式的问题时遇到问题(语句 x = y = x = 0 是非法的??)
- python - 如何计算从年、月、周的乞讨到现在已经过去了多少天?
- python - 如何解决“打破外部循环”?
- macros - 将宏变量传递给函数进行插值
- javascript - 如何在更改 Web 开发的屏幕尺寸时裁剪图像
- java - 试图让字符串在新文件中打印
- c++ - 不使用左右停止工作命名空间std的简单比较