Immutable.js
https://redux.js.org/style-guide/style-guide#use-plain-javascript-objects-for-state
より
Pros.
参照比較
による
パフォーマンス
の向上
参照
の
比較
による
パフォーマンス
の向上は
Immutable
な
オブジェクト
なら
Immutable.js
に限った話ではない.
更新
時の
パフォーマンス
に特化した
データ構造
ここが一番の強み
意図しない
状態
の変化の抑制
Immer
や
redux-immutable-state-invariant
でもこうした恩恵が受けられる.
API
を介した
ネスト
を含む
更新
Immer
であればより簡潔に処理が書ける
Cons.
バンドルサイズ
が大きい
API
がかなり複雑
アプリケーション
の
コード
に侵食する.
ロジック
がその
オブジェクト
が
Immutable.js
によるものかどうかを常に知らなくてはならない.
Immutable.js
の
オブジェクト
を
JavaScript
の
オブジェクト
に変換するコストが高い.
DeepCopy
が常に発生する.
2021年
時点で
ライブラリ
の
メンテナンス
が進んでいない.
asRagi.icon
そんなこともない気がする?
https://github.com/immutable-js/immutable-js/releases
まとめ
Immutable.js
は
オーバーヘッド
が大きく,
Immer
を採用するべき.