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

时间:2016-12-19 11:54:26

标签: reactjs redux relay

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

1 个答案:

答案 0 :(得分:8)

<强> REDUX:

  1. Redux是图书馆
  2. Redux是您应用的状态容器
  3. 它是一个单点源,可存储与您的应用相关的所有信息。
  4. 您可以通过调度操作创建操作,缩减和更新状态。
  5. 状态是不可变的,您无法更新它。始终返回克隆版本的状态。
  6. 您使用redux-thunk / redux-saga等软件包来调用apis。关于API的响应,您可以更新您的状态。
  7. 现在,如果您在redux中看到有很多样板代码。

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

    1. 创建动作/减速器/存储。
    2. 调度操作和更新商店。
    3. 处理api电话。
    4. 实施缓存。
    5. 维护商店。
    6. 维护组件中的预期道具。
    7. <强> RELAY:

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

        1. 您不需要处理API调用。中继网络层负责处理它。您可以通过指定查询和突变来实现这一目标
        2. 继电器的最佳功能之一是使缓存实现真正有用。它大大减少了api调用。
        3. Relay非常强大,但是当你开始使用时,你会有一些开销。以下是先决条件: -

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

            因此,如果你的项目是中小型的,我会说用redux和大型继电器。但是,如果你正在研究react-native确实试试中继,那真的很有趣。

            另外,是的,你可以使用redux和relay。