よくAngularをつかっていますが、Reduxライクなライブラリ「ngrx」は以下の点を理由に、好きになれませんでした。

  • 同期的に状態を取得できない
  • アクション定義が冗長

そこで以下のような簡易ライブラリをTypeScriptでつくり、npmにpublishしておきました。

rx-state-store-js

特徴

  • 継承して使用する
  • ステートのマッピング関数(ngrxでいうところのselect)は必要なし
  • 継承先クラスのメソッドがアクションなので、冗長なアクション定義不要
  • 状態はBehaviorSubjectとしてだけでなく同期的にも取得できる

よければお使いください。

AngularでDIされるServiceクラスにRxStateStoreクラスを継承させるとかなり便利です。