我必须从头开始一个新的(网络+本机)项目(中型应用程序)。由于存在过多的 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
我读过很多文章阐述使用各个框架的好处,但是内容和文章的数量有点吓人。我明白答案没有正确或错误之分。然而,最好知道前面提到的哪个堆栈能够很好地结合在一起,记住——更少的学习曲线、良好的文档、可维护性、更少的解决方法。
我认为如果您有 React + Redux 背景,那么 Apollo 应该是您的最佳选择!
注意:如果您是 GraphQL 的新手,我建议您查看如何使用 GraphQL https://www.howtographql.com/在这里您可以找到有关 Relay 和 Apollo 的教程。
几条信息:
- Relay 非常强大,但也极其复杂,并且具有显着的学习曲线。
- Apollo 构建在 Redux 之上,尽管这对于作为开发人员的您来说并不真正相关,因为商店对您来说是隐藏的。然而,使用了与 Redux 中类似的概念,例如用于更新商店updateQueries http://dev.apollodata.com/react/cache-updates.html#updateQueries.
- 这也很简单将 Apollo 商店与您自己的 Redux 商店结合起来 http://dev.apollodata.com/react/redux.html如果您想管理服务器中缓存数据以外的状态
- 通过 Apollo,您还可以使用实时订阅 https://www.graph.cool/docs/tutorials/worldchat-subscriptions-example-ui0eizishe/
- 我绝对建议不要使用 Apollo 或 Relay,而只使用 Redux,因为这两个框架在发送查询、突变、缓存和 UI 更新方面都减轻了你的负担。但是,您可能想看看Lokka https://github.com/kadirahq/lokka如果您正在寻找更轻量级的 GraphQL 客户端。
看看这个深入的文章 https://www.graph.cool/docs/tutorials/relay-vs-apollo-iechu0shia/比较 Relay 和 Apollo 以获取更多背景信息。
如果您想了解有关 Relay 和 Apollo 的更多信息,请查看如何使用 GraphQL https://www.howtographql.com教程网站。
顺便说一句,如果您不想自己构建后端,则另一个选择是图酷 https://graph.cool(免责声明:我为他们工作:))。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)