apollo 2是redux的替代品吗?

Wil*_*iam 5 apollo reactjs redux

使用Apollo时,Redux仍然具有相关性吗?

我最近一直潜入阿波罗2号,并且看到一篇值得注意的帖子,说明他们已经删除了大量的还原代码,转而支持Apollo.

https://dev-blog.apollodata.com/reducing-our-redux-code-with-react-apollo-5091b9de9c2a

我知道Apollo 1在引擎盖下使用了redux,但是在v2中已经弃用了,有几个消息来源指出使用apollo-link-state和Apollo Cache作为替代品.

Apollo Dev工具非常有用,但我发现自己经常希望使用Redux Dev Tool来查看应用程序的全局状态,使用时间旅行并查看所有调用的操作.

可能是我仍在使用Apollo,但我想知道将Redux与Apollo一起使用还有优势吗?

更新 我发现有人使用Apollo 2构建了一个简单的应用程序,这显然让我觉得认为Redux在Apollo中是完全没必要的.

https://hptechblogs.com/central-state-management-in-apollo-using-apollo-link-state/

ala*_*udi 6

React 应用程序中的状态管理是一个多维问题。它涉及协调/分析屏幕中不同组件的状态并管理异步状态 + 数据流(http、持久性等)。Apollo 一开始只解决异步状态管理问题。它将 graphql http 调用抽象为组件的内部结构。Redux 从另一方面开始管理本地同步状态。今天,虽然这两种解决方案都能够提供本地和远程数据状态管理实现,并且可以被认为是可互换的。

两种解决方案之间最大的区别在于底层的状态转换理念。Apollo 与纯状态转换的想法背道而驰,需要更少的样板。另一方面,Redux 遵循更严格的方法来确保以纯粹的方式进行状态转换。我个人喜欢将 Redux 与 GraphQl 结合使用,因为我非常喜欢让我的状态是一系列操作的结果。它使事情保持可预测性,同时仍然使 GraphQl 能够被诸如 redux-saga 之类的异步处理中间件或类似的东西使用。

TLDR:Apollo 更简单,因为它允许库做很多异步工作,但代价是不使用 Redux 的令人敬畏的动作命令模式。


Wil*_*iam 3

我发现有人使用 Apollo 2 构建了一个简单的应用程序,这显然让我认为 Redux 在 Apollo 中完全没有必要。

https://hptechblogs.com/central-state-management-in-apollo-using-apollo-link-state/