redux具有"单一事实来源的原则,并且我很难确定GQL中的轮询片段将如何继续保持这一原则。
TL; DR:apollo是否规范了整个应用程序或每个apollo容器的实体?
Apollo有自己的redux商店。 通过架构图,我看到在将数据应用到redux之前存在规范化阶段。
我的问题是:假设我有一个帖子架构和一个用户架构。 在轮询帖子时,我会提取帖子信息,还有作者(用户架构)名称和个人资料图片。 我有一个带阿波罗的帖子容器。 所以我 GUESSING apollo商店现在有这样的状态:
{
posts: {
512 : {
title: "title"
content: "big content"
author: [32]
}
},
users: {
32 : {
name: "James"
profilePic: "YYYYYY"
}
}
}
但是当用户 - 詹姆斯将他的名字改为朱利安时,会发生什么,以及另一个组件,经常更新的聊天菜单组件会有用户名:32,名字不同,朱利安。
由于这个原因,帖子容器也会更新吗?
还是会继续显示过期数据?
答案 0 :(得分:0)
很棒的问题!
您可以在此处找到答案:http://dev.apollodata.com/core/how-it-works.html#normalize
总结以防链接中断:
apollo-client
不按照您的要求存储内容,而是以平面结构存储(并根据id
生成该对象的ID,__typename
并跟踪对象之间的引用。
当组件请求这些对象时,它将从展平的结构中获取对象并将其构建为请求的格式。