当前位置: 首页 > 面试题库 >

带有GraphQL和React-Native的Relay vs Redux vs Apollo

左华灿
2023-03-14
问题内容

我必须从头开始一个新的(Web+本机)项目(中型应用程序)。由于存在过多的JS框架和实现,尤其是在最近几年中,我一直对我的常规堆栈有第二个疑问。

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

对于这个新项目,我决定使用React-Native + Web的React Native + 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的新手,我建议您查看How to
GraphQL
,在该指南中可以找到Relay和Apollo上的教程。

一些信息:

  • 中继功能非常强大,但也非常复杂,并且学习曲线显着。
  • Apollo建立在Redux之上,尽管这对于您作为开发人员而言并不重要,因为商店对您而言是隐藏的。但是,可以使用与Redux中类似的概念,例如,使用来更新商店updateQueries
  • 如果要管理除服务器中缓存的数据以外的状态,将Apollo存储与自己的Redux存储结合起来也很简单
  • 使用Apollo,您还可以使用实时订阅
  • 我绝对建议您不要使用Apollo或Relay,而不要只使用Redux,因为在发送查询,变异,缓存和UI更新时,这两个框架都将使您的工作量大为减少。但是,如果您正在寻找更轻巧的GraphQL客户端,则可能需要看一下Lokka。

请看一下这篇深入的文章,比较Relay和Apollo,以获取更多背景信息。

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

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



 类似资料:
  • github-react-native-apollo-graphql Alpha version coming soon �� This project is under development...

  • 本文向大家介绍React Native和React有什么区别?相关面试题,主要包含被问及React Native和React有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 主要是底层 renders 层不同,React 使用的是 Visual DOM,React Native 替换成了native 组件。

  • 我开始了一个在react-native和React-JS之间共享代码的多平台项目。所以我有一个针对浏览器/电子的webpack设置,以及针对Android/iOS的react-native 0.57设置。我现在遇到的问题是:找不到变量:require 这可能是一个很愚蠢的问题,但我还需要什么吗?我读到,React-native应该支持require本身,但还找不到任何与此设置相关的东西。 我也在浏

  • 问题内容: 我正在考虑将React Native用于新的Web应用程序。是否可以使用它同时发布iOS和Android应用程序? 我知道这是在路线图上,但是我不清楚这将是一个单独的开源项目(例如,React Android与React Native)还是一个(例如,React Native)。 问题答案: TLDR :很有可能。但这取决于您的用例。 您可以实现约 80〜99 +%的代码复用率 (取决

  • Auth/app-not-authorizederror只有在手机验证中使用设备,我可以存储电子邮件/密码验证的数据,在firebase react-native中测试手机验证,但不使用设备,我添加了SHA 1,我检查了包名,项目名,添加了google-services.json,我添加了react-native-app,react-native-auth。我不会把otp从Firebase带到我的

  • 问题内容: 我已经出于好奇而开始学习 React ,并且想知道React和React Native之间的区别- 尽管使用Google找不到满意的答案。React和React Native似乎具有相同的格式。它们的语法完全不同吗? 问题答案: ReactJS是一个JavaScript库,它支持前端Web并在服务器上运行,用于构建用户界面和Web应用程序。它遵循可重用组件的概念。 React Nati