【问题标题】:Relay vs Redux vs Apollo with GraphQL and React-Native [closed]使用 GraphQL 和 React-Native 的 Relay vs Redux vs Apollo [关闭]
【发布时间】:2017-09-04 13:00:52
【问题描述】:

我必须从头开始一个新的(网络 + 原生)项目(中型应用程序)。由于 JS 框架和实现过多,尤其是在过去几年中,我一直对我通常的堆栈产生第二个疑问。

我一直在前端使用 react + redux,后端使用 Node 和 MongoDB,通过 REST API 进行通信。

对于这个新项目,我决定使用 React-Native + React Native for Web + Node + PostgreSQL。但是,我想知道应该使用哪个框架来获取数据和状态/存储管理。

到目前为止,redux 非常适合我。但是,由于 JS 演化的性质。我对使用过去使用的相同堆栈有点怀疑。

如果我使用以下堆栈有什么利弊

React-Native + React-Native-For-Web + Redux + GraphQL + Node + PostgreSQL


React-Native + React-Native-For-Web + Relay + GraphQL + Node + PostgreSQL


React-Native + React-Native-For-Web + Apollo + GraphQL + Node + PostgreSQL

我已经阅读了很多文章,说明使用每个框架的好处,但是内容和文章的数量有点吓人。我明白没有正确或错误的答案。但是,很高兴知道前面提到的哪个堆栈可以很好地结合在一起,记住 - 更少的学习曲线,良好的文档,可维护性,更少的变通方法。

【问题讨论】:

    标签: reactjs react-native redux graphql relayjs


    【解决方案1】:

    我认为,如果您来自 React + Redux 背景,那么 Apollo 应该是您的最佳选择!

    注意:如果您是 GraphQL 的新手,我建议您查看How to GraphQL,在那里您可以找到有关 Relay 和 Apollo 的教程。

    一些信息:

    • Relay 非常强大,但也极其复杂,并且具有显着的学习曲线。
    • Apollo 构建在 Redux 之上,尽管这与作为开发人员的您并不真正相关,因为商店对您来说是隐藏的。但是,使用了与 Redux 中类似的概念,例如使用updateQueries 更新商店。
    • 如果您想管理来自服务器的缓存数据以外的状态,也可以直接使用 combine the Apollo store with your own Redux store
    • 有了Apollo,你也可以使用realtime subscriptions
    • 我绝对建议不要使用 Apollo 或 Relay,而只使用 Redux,因为在发送查询、突变、缓存和 UI 更新时,这两个框架都可以让您轻松完成工作。但是,如果您正在寻找更轻量级的 GraphQL 客户端,则可能需要查看 Lokka

    查看in-depth article 比较 Relay 和 Apollo 了解更多背景信息。

    如果您想了解有关 Relay 和 Apollo 的更多信息,请查看 How to GraphQL 教程网站。

    顺便说一句,如果您不想自己构建后端,另一种选择是Graphcool(免责声明:我为他们工作:))。

    【讨论】:

    • 感谢您的详细回答。您能否告诉我(graphql-server 和 Graphcool)在加快开发周期方面的主要区别是什么。 graphql-server 和 GraphCool 有何不同。
    • 在不太了解graphql-server 的情况下,我认为主要区别在于Graphcool 提供了一个成熟的托管解决方案,而graphql-server 是一个帮助您构建自己的GraphQL 服务器的工具。因此,根据您的目标,其中一个可能更适合 :) 如果您有兴趣了解更多关于 GraphQL 如何在服务器上工作的信息,那么graphql-server 肯定会为您提供更好的服务!如果您只是想尽快构建应用程序,Graphcool 可能会更有帮助,因为您不必做任何与服务器相关的工作。
    • 谢谢。我需要深入阅读 Graphcool 文档。目前我想知道您在服务器上存储了哪些数据。例如,如果我的应用程序托管在 Heroku 上。我的托管应用如何与 Graphcool 通信,以及哪些数据实际存储在您的服务器上。
    • 我想是时候编辑这个答案了。中继 API 的更改使其使用起来非常简单。
    猜你喜欢
    • 2017-12-20
    • 2018-05-16
    • 2016-08-26
    • 2017-07-19
    • 2018-11-14
    • 2017-07-14
    • 2021-09-30
    • 2018-02-12
    • 2017-08-25
    相关资源
    最近更新 更多