Skip to content

なぜReactの状態管理ライブラリが必要なのか

React標準の useState でも状態の保持は可能だけど何が違うのか。

RecoilやJotaiのようなライブラリは、状態を扱うことも当然だけど、コンポーネントの再描画を防ぐためにもある。

  • 状態を保持する
  • バケツリレーを回避する
  • useContext の値を引き回すコンポーネント全てで再描画の発生を防ぐ

例えば useState で持っている状態の変化があったとき、実際にその値を描画しているかどうかに拘わらず、バケツリレーの経路にある全てのコンポーネントで再描画が発生する。

では useContext とは何が違うのか。公式ドキュメントのComparisonによると、useContext よりシンプルで簡単に使えるとのことだった。Provider が不要になるのでまあそうだけど、それ以上の違いはたぶんない。