我知道Redux是Flux的一个更好的"实现",或者更好地说它是一个简化事物(应用程序状态管理)的重新设计.
我听过很多关于反应式编程(RxJS)的内容,但我还没有去学习它.
所以我的问题是:这两种技术之间是否存在任何交集(任何共同点)或它们是互补的?......还是完全不同?
简而言之,它们是非常不同的库,但是有一些模糊的相似之处.
Redux是一个在整个应用程序中管理状态的工具.它通常用作UI的体系结构.可以将其视为(一半)Angular的替代品.
RxJS是一个反应式编程库.它通常用作在JavaScript中完成异步任务的工具.把它想象成Promise的替代品.
反应式编程是一种范式(工作和思考方式),从远处观察数据变化.数据不会从远处更改.
这是一个从远处改变的例子:
// In the controller.js file model.set('name', 'George');
该模型被改变从控制器.
这是从远处观察的一个例子:
// logger.js store.subscribe(function (data) { console.log(data); });
在Logger中,我们观察Store(从远处)发生的数据更改,并写入控制台.
Redux稍微使用了Reactive范例:Store是被动的.您没有从远处设置其内容.这就是store.set()
Redux中没有的原因.商店从远处观察行动,并自行改变.商店允许其他人从远处观察其数据.
RxJS也使用Reactive范例,但它不是一个体系结构,它为您提供了基本的构建块Observable,以实现这种"远距离观察"模式.
总而言之,为不同的目的,非常不同的东西,但分享一些想法.
它们是非常不同的东西.
RxJS可用于执行反应式编程,是一个包含250多个运算符的非常全面的库.
Redux就像github repo中描述的那样"Redux是JavaScript应用程序的可预测状态容器".
Redux只是一个处理应用程序状态的工具.但相比之下,你可以在RxJS中构建一个完整的应用程序.
希望这可以帮助 :)