【问题标题】:Difference between to Relay (with GraphQL) and Redux?中继(使用 GraphQL)和 Redux 之间的区别?
【发布时间】:2017-05-04 11:20:17
【问题描述】:

Relay 和 Redux 是相互替代的吗?什么时候最好用?我们可以在 Redux 中使用 Relay、GraphQL 吗?

【问题讨论】:

  • 我的快速理解:Redux 是一种用于管理本地应用程序状态的模式,在我的理解中,Relay 有助于以按需数据的方式从服务器查询数据。 Relay 还有助于缓存某些数据集。
  • 我尝试过使用relay,它是一个非常好的工具并且经过高度优化,但是relay 的问题在于文档和社区,它会带你去找出永无止境的错误修复。另一方面,redux 的文档非常好。将 Apollo Client 与 Redux 结合使用,这是目前适用于 GraphQL 的最简单的解决方案,直到 Realy 2 和完美的文档上线。

标签: reactjs redux relay


【解决方案1】:

REDUX:

  1. Redux 是库
  2. Redux 是您应用的状态容器
  3. 它是存储与您的应用相关的所有信息的单点源。
  4. 您可以通过调度操作来创建操作、reducers 并更新您的状态。
  5. 状态是不可变的,您无法对其进行更新。始终返回状态的克隆版本。
  6. 你使用像redux-thunk/redux-saga这样的包来调用api。在 API 响应时,您会更新您的状态。

现在,如果您在redux 中看到有很多样板代码。

我个人觉得 redux 真的很酷也很方便,但你需要注意以下几点:-

  1. 创建操作/reducers/store。
  2. 调度操作和更新存储。
  3. 处理 api 调用。
  4. 实现缓存。
  5. 维护商店。
  6. 维护组件中的预期道具。

继电器:

  1. Relay 是一个 Javascript 框架。
  2. 为您处理商店。您不必担心更新商店
  3. 照顾您的 API 调用(这是最好的功能)
  4. Store 是不可变的,并返回克隆版本。
  5. 与 GraphQL 一起使用(这部分有点棘手,因为您还需要了解 graphql)。在研究了一段时间后,我意识到这是一个主要缺点。但是,一旦您了解了 graphql,它就真的很强大了
  6. 适用于查询和突变

Relay 真的很强大,提供以下好处:-

  1. 您不需要处理 API 调用。中继网络层负责它。您可以通过指定查询和突变来做到这一点
  2. 中继的最佳特性之一是缓存实现。它大大减少了 api 调用。

Relay 确实非常强大,但是当你开始使用时会有一些开销。以下是先决条件:-

  1. 反应
  2. Graphql
  3. ES2015 JS

一旦你完成了先决条件,了解中继的实际工作原理有点棘手,而且不像 redux 那样容易。但是,一旦您了解了它的工作原理以及为什么将其带入图片中,您会感到非常惊讶。它确实是一个非常强大的工具。

因此,如果您的项目是中小型项目,我会说使用 redux,如果它是大规模中继。但是如果你在做 react-native 一定要尝试一下 relay ,它真的很有趣。

另外,是的,您可以将 redux 与中继一起使用。

【讨论】:

  • 不错的答案! “是的,您可以将 redux 与中继一起使用。” - 你能详细说明一下吗?
  • 我实际上有一个问题,但我认为它已被删除。无论如何,这可能会对您有所帮助github.com/barbuza/react-redux-relay
猜你喜欢
  • 2020-04-17
  • 2019-08-20
  • 2016-03-01
  • 2020-10-03
  • 2019-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
相关资源
最近更新 更多