继电器(使用GraphQL)和Redux之间的区别?

Cha*_*a94 2 relay reactjs redux

Relay和Redux是否相互替代?它们何时最适合使用?我们可以使用Relay,GraphQL和Redux吗?

Har*_*uja 8

REDUX:

  1. Redux是图书馆
  2. Redux是您应用的状态容器
  3. 它是一个单点源,可存储与您的应用程序相关的所有信息.
  4. 您可以通过调度操作创建操作,缩减器和更新状态.
  5. 状态是不可变的,您无法更新它.始终返回克隆的状态版本.
  6. 你使用像redux-thunk/ redux-saga这样的包来调用apis.在API的响应中,您更新您的状态.

现在,如果你看到redux有很多样板代码.

我个人认为redux非常酷且方便,但您需要注意以下事项: -

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

中继:

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

继电器非常强大,并提供以下好处: -

  1. 您不需要处理API调用.中继网络层负责处理它.您可以通过指定查询和突变来实现
  2. 继电器的最佳功能之一是使缓存实现真正有用.它大大减少了api调用.

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

  1. 应对
  2. Graphql
  3. ES2015 JS

一旦完成先决条件,也了解继电器实际工作方式有点棘手,并不像redux那么容易.但是一旦你理解它是如何工作的,为什么它被带入画面,你真的会感到惊讶.它确实是一个非常强大的工具.

因此,如果您的项目是中小型的,我会说与redux一起使用,如果它是大规模继电器.但是,如果你正在研究react-native,那就试试中继,这真的很有趣.

此外,是的,你可以使用redux与继电器.