Relay 和 Redux 可以互为替代品吗?什么时候用最好?我们可以将 Relay、GraphQL 与 Redux 一起使用吗?
最佳答案
还原:
- Redux 是图书馆
- Redux 是您应用的状态容器
- 它是存储与您的应用相关的所有信息的单点源。
- 您创建操作、reducer 并通过调度操作更新您的状态。
- 状态是不可变的,你不能更新它。总是返回状态的克隆版本。
- 您使用像
redux-thunk
/redux-saga
这样的包来调用 api。在 API 的响应中,您更新您的状态。
现在,如果您在 redux
中看到很多样板代码。
我个人觉得 redux 非常酷而且方便,但您需要注意以下事项:-
- 创建 actions/reducers/store。
- 调度操作和更新商店。
- 处理 API 调用。
- 实现缓存。
- 维护商店。
- 维护组件中的预期 Prop 。
中继:
- Relay 是一个 Javascript 框架。
- 为您处理商店。您不必担心更新商店
- 负责您的 API 调用(这是最好的功能)
- 存储是不可变的,克隆版本被返回。
- 使用 GraphQL(这部分有点棘手,因为您还需要了解 graphql)。经过一段时间的研究后,我意识到这是一个主要缺点。但是一旦你理解了 graphql 它真的很强大
- 致力于查询和变更
Relay 真的非常强大,并提供以下好处:-
- 您不需要处理 API 调用。中继网络层负责处理它。您可以通过指定查询和变更来做到这一点
- 使中继真正有用的最佳功能之一是缓存实现。它大大减少了 api 调用。
Relay 确实非常强大,但是在您开始使用时会有一些开销。以下是先决条件:-
- react
- 图形化
- ES2015JS
完成先决条件后,了解中继的实际工作原理有点棘手,不像 redux 那样容易。但是,一旦您了解了它的工作原理以及为什么将其引入画面,您就会真的感到惊讶。它确实是一个非常强大的工具。
因此,如果您的项目是中小型项目,我会说使用 redux,如果是大型中继。但是,如果您正在研究 react-native,请尝试一下中继,这真的很有趣。
此外,是的,您可以将 redux 与中继一起使用。
关于reactjs - 中继(使用 GraphQL)和 Redux 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41222041/