Apollo Client和Relay之间有什么区别?

时间:2017-04-05 14:13:32

标签: reactjs graphql relay apollo react-apollo

我刚刚介绍了GraphQL,并决定在两个框架(ApolloRelay)之间实现我的前端React Web应用程序。

我知道Relay是由Facebook建造的,而Apollo是由Meteor建造的。有没有人尝试过两者,你的经历如何?我想知道它们之间有什么区别,与Apollo相比,哪种GraphQL应用程序可以从使用Relay中获益更多。

1 个答案:

答案 0 :(得分:14)

TL; DR:这个问题的答案归结为"它取决于"。我鼓励您尝试两个GraphQL客户端并得出您自己的结论。 Learn ApolloLearn Relay是开始使用此功能的绝佳资源,您也可以尝试使用RelayApollo的示例应用。

看看这个in-depth comparions of Apollo vs. Relay。这是一个快速概述:

框架

Relay仅适用于React和RN,而Apollo是框架无关的。由于您想构建一个React应用程序,这对您来说不是问题,但它仍然值得一提。

GraphQL API

Relay需要Relay specification中进一步描述的自定义架构。 Apollo适用于任何GraphQL架构。

灵活性

Relay强加了一个严格的,固定的结构,你绝对需要遵循。另一方面,Apollo为处理特定主题提供了许多不同的方法和选择。

生产率

Relay提供了出色的开发人员体验,但具有很高的入门级别。阿波罗需要更多的手工工作才能完成任务。

难度

接力介绍a lot of new concepts并重申,它具有很高的进入障碍。与此相比,阿波罗非常容易上手。

订阅

除了一些社区努力使订阅与Relay合作之外,对于Relay中的订阅并没有真正的共识。另一方面,Apollo与subscriptions-transport-ws很好地融合,已经在社区中得到了很好的采用。例如,这里有worldchat app using GraphQL subscriptions

架构检查

中继需要a schema check using Babel on build-time。 Apollo为此提供了可选工具。