我刚刚介绍了GraphQL,并决定在两个框架(Apollo和Relay)之间实现我的前端React Web应用程序。
我知道Relay是由Facebook建造的,而Apollo是由Meteor建造的。有没有人尝试过两者,你的经历如何?我想知道它们之间有什么区别,与Apollo相比,哪种GraphQL应用程序可以从使用Relay中获益更多。
答案 0 :(得分:14)
TL; DR:这个问题的答案归结为"它取决于"。我鼓励您尝试两个GraphQL客户端并得出您自己的结论。 Learn Apollo和Learn Relay是开始使用此功能的绝佳资源,您也可以尝试使用Relay和Apollo的示例应用。
看看这个in-depth comparions of Apollo vs. Relay。这是一个快速概述:
Relay仅适用于React和RN,而Apollo是框架无关的。由于您想构建一个React应用程序,这对您来说不是问题,但它仍然值得一提。
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为此提供了可选工具。