なぜReactの状態管理ライブラリが必要なのか
React標準の useState でも状態の保持は可能だけど何が違うのか。
RecoilやJotaiのようなライブラリは、状態を扱うことも当然だけど、コンポーネントの再描画を防ぐためにもある。
- 状態を保持する
- バケツリレーを回避する
- useContext の値を引き回すコンポーネント全てで再描画の発生を防ぐ
例えば useState で持っている状態の変化があったとき、実際にその値を描画しているかどうかに拘わらず、バケツリレーの経路にある全てのコンポーネントで再描画が発生する。
では useContext とは何が違うのか。公式ドキュメントのComparisonによると、useContext よりシンプルで簡単に使えるとのことだった。Provider が不要になるのでまあそうだけど、それ以上の違いはたぶんない。