想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文来回答。
4年前关闭。
Improve this question
我刚刚接触了 GraphQL,正在决定在两个框架( Apollo 和 Relay )之间实现我的前端 React Web 应用程序。
我知道 Relay 是由 Facebook 构建的,而 Apollo 是由 Meteor 构建的。有没有人尝试过这两种方法,您的体验如何?我想知道它们之间有什么区别,以及与 Apollo 相比,哪种 GraphQL 应用程序会从使用 Relay 中受益更多。
最佳答案
TL;DR: 这个问题的答案归结为“视情况而定”。我鼓励你尝试两个 GraphQL 客户端并得出你自己的结论。 Learn Apollo 和 Learn Relay 是入门的绝佳资源。
请注意,以下讨论的是继电器 1,而不是继电器 2。
构架
Relay 仅适用于 React 和 RN,而 Apollo 与框架无关。当你想构建一个 React 应用程序时,这对你来说不是问题,但仍然值得一提。
GraphQL API
Relay 需要在 Relay specification 中进一步描述的自定义模式。 Apollo 适用于任何 GraphQL 模式。
灵活性
Relay 强加了您绝对需要遵循的严格、固定的结构。另一方面,Apollo 为您提供了许多不同的方法和选择来处理特定主题。
生产率
Relay 提供了出色的开发人员体验,但具有很高的进入阈值。 Apollo 需要更多的手动工作才能完成任务。
困难
Relay 引入了很多新概念,如节点、边和连接,重申一下,它具有很高的进入阈值。相比之下,Apollo 非常容易上手。
订阅
除了一些社区努力使订阅与 Relay 一起工作之外,关于 Relay 中的订阅并没有真正达成共识。另一方面,Apollo 与 subscriptions-transport-ws
很好地集成,worldchat app using GraphQL subscriptions 已经在社区中得到了广泛的采用。例如,这里有一个 a schema check using Babel on build-time。
架构检查
中继需要 ojit_a 。 Apollo 为此提供了可选工具。
关于reactjs - Apollo Client 和 Relay 有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43233760/