1. ホーム
  2. javascript

[解決済み] ReduxとRxJS、似ているところはありますか?[クローズド]

2022-07-25 19:47:56

質問

ReduxはFluxのより良いquot;implementation"であり、よりシンプルにするための再設計と言った方がよいでしょう(アプリケーションの状態管理)。

リアクティブプログラミング(RxJS)はよく聞きますが、まだ勉強してません。

私の質問は、この2つの技術の間に交差点(共通点)があるのか、それとも補完関係にあるのか? ...あるいは全く違うのか?

どのように解決するのですか?

要するに、これらは非常に異なる目的のための非常に異なるライブラリですが、たしかに漠然とした類似点はあります。

Reduxは、アプリケーション全体の状態を管理するためのツールです。通常、UIのためのアーキテクチャとして使用されます。Angularの(半分の)代替品とお考えください。

RxJSは、リアクティブプログラミングライブラリです。通常、JavaScriptで非同期タスクを達成するためのツールとして使用されます。Promisesの代替品とお考えください。


リアクティブプログラミングは、データの変更を 遠くから観察する . データは 離れているところから変更される .

の例です。 遠くから見た :

// In the controller.js file
model.set('name', 'George');

モデルが変更される をコントローラから変更します。

以下は 遠くから観察した :

// logger.js
store.subscribe(function (data) {
    console.log(data);
});

Loggerでは、Storeで起こるデータの変化を(離れたところから)観察し、コンソールに書き込みます。


ReduxはReactiveパラダイムをほんの少し使っています:Storeはreactiveです。ストアは反応的です。遠くからコンテンツを設定することはありません。そのため store.set() がないのはそのためです。Storeは、離れたところからアクションを観察し、自分自身を変化させる。そして、Storeはそのデータを他者が遠くから観察することを可能にする。

RxJSもReactiveパラダイムを使用していますが、アーキテクチャである代わりに基本的なビルディングブロックを提供しています。 オブザーバブル を提供し、この「遠くから観察する」パターンを実現します。

結論として、異なる目的のために非常に異なるものですが、いくつかのアイデアを共有しています。