我刚被介绍给GraphQL,并正在决定用于实现前端React Web应用程序的两个框架(Apollo和Relay)之间。
我知道Relay是由Facebook构建的,而Apollo是由Meteor构建的。有没有人尝试过这两种方法,您的经历如何?我想知道它们之间有什么区别,与使用Apollo相比,使用Relay可以使哪种GraphQL应用程序受益更多。
TL; DR: 这个问题的答案归结为“取决于”。我鼓励您尝试使用这两个GraphQL客户端,并得出自己的结论。Learn Apollo和Learn Relay是入门的绝佳资源。
请注意,以下内容是关于中继1而非中继2的。
中继仅在React和RN上有效,而Apollo与框架无关。当您想构建一个React应用时,这对您来说不是问题,但仍然值得一提。
中继需要在中继规范中进一步描述的自定义架构。Apollo可与任何GraphQL模式一起使用。
中继强加了您绝对需要遵循的严格的固定结构。另一方面,Apollo为您提供了许多不同的方法和选择来处理特定主题。
中继提供了出色的开发人员经验,但入门门槛很高。阿波罗需要更多的人工工作才能完成工作。
中继引入了许多新概念,例如节点,边和连接,并且重申一下,引入了很高的障碍。与此相反,Apollo非常容易上手。
除了在社区中使中继与订阅一起工作的一些努力之外,关于中继中的订阅并没有真正达成共识。另一方面,阿波罗(Apollo)可以很好地与之集成,subscriptions- transport-ws从而在社区中获得了广泛的采用。例如,这是一个使用GraphQL订阅的worldchat应用程序。
subscriptions- transport-ws
中继需要在构建时使用Babel进行模式检查。为此,Apollo提供了可选工具。