Redux は、予測しやすく保守しやすいグローバル状態管理を目指した JavaScript ライブラリです。 React 専用ではありませんが、実際には React と組み合わせて語られることがほとんどです。
いま学ぶなら Redux Toolkit 前提で
Redux 公式ドキュメントは、現在 新しいコードでは redux コアパッケージを使わず Redux Toolkit を使うべきだと明記しています。createStore は「obsolete(旧式)」と位置づけられ、configureStore に置き換わりました。
(出典:Redux 公式 / Redux Toolkit is Redux Today)
古い記事でよく見る「switch 文だらけの reducer」「スプレッド演算子で不変更新を手書き」は、今は書きません。Redux Toolkit の createSlice と Immer によって、見た目は書き換えでも内部では不変更新になる形で書けます。ここを知らずに古い解説から入ると、Redux は無駄に難しい印象になります。
Redux を選ぶ基準
- 状態の更新経路を明示し、チームで書き方を揃えたい
- 一覧・編集中・権限・非同期取得が絡み、どこで何が変わったか追いたい
- Redux DevTools で「どの action で state がどう変わったか」を巻き戻して調べたい
選ばない基準
共有したい値がテーマとログインユーザーくらいなら Context API で足ります。軽く始めたいだけなら Zustand の方が学習コストが低く、store の定義も数行で済みます。 「大規模になったら Redux」は正しいのですが、小さいうちに入れると設計の重さだけが先に来ます。判断は、状態の数ではなく「更新経路を追えなくなったか」で決めるのが実務的です。