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