所以,首先有点背景。 我是一位本机iOS/Android开发人员,现在开始我的第一个React Native项目。它带来了Javascript的所有好处和痛苦,但到目前为止,我非常喜欢它:-)我也决定也第一次尝试使用GraphQL。QueryRenderer在继电器现代中的角色?
作为React环境中的新手,我也没有任何关于Relay的知识,但是在我的创业社区的朋友和我的web-dev同事的推荐中选择了它。我也被告知学习曲线有些陡峭,但决定继续前进 - 我已经与JS和一个0.xx版本的新移动平台进行了艰苦的斗争,所以到底什么是对的? :-)我设法通过我的GQL服务器正确设置我的项目和冲压整体带QueryRenderer
,这是一个极大的安慰:-)
因此,在对问题
我很难找出容器/组件的关系,以及容器的组成。阅读the docs on composition帮助,但我仍然怀疑过的QueryRenderer
QueryRenderer
的角色由文档据说是每一个接力树的根容器。这是否意味着我们应用程序中的根应该有QueryRenderer
?或者在每个导航路径的根目录下(即我们应用程序中的选项卡)?或者只是针对每个容器组件(与表示/哑/纯组件相反,React明智)?请注意,我不是在寻找意见,而是最佳实践的论点:-)FragmentContainer
(或其他任何容器,就此而言)在“父”组件中的作业没有QueryRenderer
?QueryRenderer
如何链接到子容器?它是否获取子容器所需的所有数据的总和,然后从高速缓存中读取子容器,或者?如果是这样,我误解了Relay的优点 - 我们觉得每个组件都可以独立于每个其他组件获取数据,并且每个组件都不知道其他组件的数据需求(包括父/子组件)。我认为这个假设也令我对QueryRenderer
感到困惑,并且需要一个“根”容器。- 如果
QueryRenderer
是中继树的“父”/“根”中继容器,它如何根据请求呈现视图组件?为什么它必须有一个请求?什么时候应该使用QueryRenderer
?
任何帮助深表感谢:-)
如果有足够多的人满意答案,我将最终将其标记为“已接受”,以便将来访问此帖的任何人。我会等待,看看其他人是否同意我们的策略,但:-) – jhm
是不是中继足够聪明,只有当组件呈现时才能获取片段的数据?例如,你可能有一个带有片段的根查询... User_friends;我相信只有当使用它的组件呈现时,Relay才会获取这些片段的数据。如果我错了,请纠正我 –
回复我自己,我刚刚在父QueryRenderer中尝试过一个子fragmentContainer,实际上,QueryRenderer为子fragmentContainer提取数据,即使当孩子甚至还没有呈现时。无论如何,我将不得不提出两个答案,因为实际上取决于具体情况=) –