異なるコンポーネントやハンドラーメソッドで状態を管理およびアクセスする場合、RxJS と Redux/context のどちらを使用できますか? 質問する

異なるコンポーネントやハンドラーメソッドで状態を管理およびアクセスする場合、RxJS と Redux/context のどちらを使用できますか? 質問する

Redux は Flux のより優れた「実装」であり、あるいは、物事を簡素化するための再設計 (アプリケーション状態管理) であると言う方が適切だと私は知っています。

リアクティブプログラミング (RxJS) についてはよく耳にしますが、まだ本格的に学習していません。

そこで私の質問は、この 2 つのテクノロジーの間に共通点 (共通点) があるか、それとも補完的であるか、またはまったく異なるかということです。

Redux は、Reach コンテキスト API とともに、Redux アクションを通じて監視できる状態ストアを作成および管理する方法です。

リアクティブ プログラミング言語である RxJS には、Redux アクションやリデューサーのオーバーヘッドなしで、さまざまなコンポーネントの状態を設定したり、状態にアクセスしたりする機能があります。

状態の管理とアクセスの目的で、リアクティブ プログラミング パラダイムではなく状態ストアとして Redux を使用する方が便利な場合はありますか?

さまざまなコンポーネントの状態を管理およびアクセスするために、どちらを使用するかをどのように決定しますか?

ベストアンサー1

つまり、これらは目的がまったく異なるライブラリですが、漠然とした類似点もいくつかあります。

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 はリアクティブです。そのコンテンツを遠隔から設定することはありません。Reduxstore.set()に がないのはそのためです。Store は遠隔からアクションを監視し、それ自体を変更します。また、Store により、他のユーザーが遠隔からそのデータを監視できるようになります。

RxJSもReactiveパラダイムを採用していますが、アーキテクチャではなく、基本的な構成要素を提供します。観測可能なもの、この「遠くから観察する」パターンを実現します。

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

おすすめ記事