Redux 和 RxJS,有什么相似之处吗?[已关闭]

2022-08-30 04:35:13

我知道 Redux 是 Flux 的更好“实现”,或者更好地说它是一种重新设计,以简化事情(应用程序状态管理)。

我听说过很多关于反应式编程(RxJS)的知识,但我还没有深入研究它。

所以我的问题是:这两种技术之间是否存在任何交集(任何共同点),或者它们是互补的?...还是完全不同?


答案 1

简而言之,它们是用于非常不同的目的的非常不同的库,但是是的,有一些模糊的相似之处。

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,来完成这种“从远处观察”模式。

总而言之,出于不同的目的,非常不同的事情,但分享一些想法。


答案 2

它们是非常不同的东西。

RxJS可用于进行反应式编程,是一个非常全面的库,具有250多个运算符。

Redux就像github存储库中所描述的那样,“Redux是JavaScript应用程序的可预测状态容器”。

Redux 只是一个在应用中处理状态的工具。但相比之下,你可以在RxJS中构建一个完整的应用程序。

希望这有助于:)