モチベーション
- Reduxを使っていたが個人開発なのでコード量が増えてつらい
- 使い慣れたアーキテクチャを使いたい
- 自分好みの処理分割、ファイル分割をしたい
- そもそもほかのライブラリ使うのにミドルウェアが必要なものってどうなのよ
- 学習コストが高くて飛び入りでプロジェクトに入った人がつらい
- 短期の開発で使いづらい
- もっと他にいいライブラリ無いの?
React系の状態管理ライブラリ
それぞれの長所、短所などをまとめてみます。
Redux
メリット
- 厳正に書きかたが決まっている(ガイドラインがある)
- テストがしやすい
- アーキテクチャがきれい(個人的にはコードは見やすいと思います)
- デバッガなどのツールがそろっている
デメリット
- 学習コストが高い
- コードの記述量が多い
- 影響範囲が広い
- アーキテクチャが限定される
- ミドルウェアが必要
mobX
メリット
- Reduxに比べて記述量が少ない
- 学習コストがReduxに比べて低い
- @Computedなどの処理で値の操作が容易
- StoreとActionがそろっているのでパッと見で構造がわかる(JavaのBeansっぽい構造)
デメリット
- 自由度が高い
- 中途半端にアーキテクチャに干渉する
- デバッグがしづらい
- あくまでReduxよりましというだけで、アーキテクチャに関しての知識は必要
- ルーターと一緒に使うときに、連携させるためのコードを書かなきゃいけない
undux
メリット
- よりReactっぽい書き方ができる
- 学習コストなんてものはなかった
- コードの記述量が最小限
- Reduxのデバッグツールが使える
- ほかのライブラリと組み合わせやすい
- アーキテクチャへの影響がない
- Rxjsによる値の監視ができる(mobXの@computedと同じようなことができる)
- 参照 : undux#effects
デメリット
- 発展途上
- 多機能ではない
- レンダリングさせたい場合はこちらで監視しなければいけない(僕はむしろこっちのが好き)
- 別でアーキテクチャ(ファイル構造や処理の切り分け)を考える必要がある
結局どうしたのか
僕はいろいろ見た結果unduxを使うことにしました。
やっぱりシンプルなのが一番使いやすかったです。
中身のソースもわかりやすくて、詰まった時とかに資料がなくて困ってもソース見ればわかったりします。
ほんとにチュートリアルするのに時間かからないのでソースだけでも一回見てみてください。
unduxもっと流行れ。