reactjs - 中继(使用 GraphQL)和 Redux 之间的区别?

标签 reactjs redux relay

Relay 和 Redux 可以互为替代品吗?什么时候用最好?我们可以将 Relay、GraphQL 与 Redux 一起使用吗?

最佳答案

还原:

  1. Redux 是图书馆
  2. Redux 是您应用的状态容器
  3. 它是存储与您的应用相关的所有信息的单点源。
  4. 您创建操作、reducer 并通过调度操作更新您的状态。
  5. 状态是不可变的,你不能更新它。总是返回状态的克隆版本。
  6. 您使用像 redux-thunk/redux-saga 这样的包来调用 api。在 API 的响应中,您更新您的状态。

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

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

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

中继:

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

Relay 真的非常强大,并提供以下好处:-

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

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

  1. react
  2. 图形化
  3. ES2015JS

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

因此,如果您的项目是中小型项目,我会说使用 redux,如果是大型中继。但是,如果您正在研究 react-native,请尝试一下中继,这真的很有趣。

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

关于reactjs - 中继(使用 GraphQL)和 Redux 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41222041/

相关文章:

reactjs - 在 React 中上传多张图片

ios - 在节点模块中对 native 重建 .bin 文件夹使用react

javascript - 在 TypeScript 中包装函数的嵌套对象?

javascript - This.props.dispatch 不是一个函数 - React-Redux

reactjs - React/Relay Modern/GraphQL 简单项目设置与 Babel 问题

reactjs - 继电器抛出错误 : Cannot read property 'reduce' of undefined

Webstorm 中的 CoffeeScript-React (.cjsx) 支持

javascript - 在 StyleSheet 中使用函数是否存在性能缺陷?

javascript - Angular 2 中的 Redux 与服务

graphql - 中继编译器不生成 .graphql 文件