Zustand は、React で共有状態をシンプルに持ちたいときによく使われる軽量な状態管理ライブラリです。
公式 README でも、小さくて速く、スケールしやすい state management solution と案内されています。
まず押さえたいポイント
useStateだけでは持ち回りにくい共有状態を 1 つの store にまとめやすい- React の Context API のような Provider を必須にしない構成で始めやすい
- Redux より書く量が少なく、最初の一歩が軽い
- ただし、何でも 1 つの store に集めると管理しにくくなる
どんな場面で使うか
- ログイン中ユーザーの軽い表示状態
- モーダルやサイドバーの開閉
- フィルター条件やソート条件の共有
- フォーム途中入力の一時保持
大きな業務アプリでも使えますが、最初に名前が出やすいのは「React で状態管理をもう少し楽にしたい」と感じたときです。
Context API や Redux との違い
Context API は React 標準の仕組みで、深い階層まで値を渡すのに向いています。
一方で、更新が多い共有状態を全部 Context に寄せると、設計や分割を意識しないと見通しが悪くなりやすいです。
Redux は大規模アプリやチーム開発でも使いやすい定番ですが、現代の Redux では Redux Toolkit を前提に考えるのが一般的です。
Zustand はそこまで厳格な枠組みを持たず、もっと軽く始められるのが強みです。
実務で見るポイント
Zustand が向いているのは、共有したい状態はあるが、Redux ほど大きな仕組みはまだ要らない という場面です。
逆に、状態の更新履歴やチーム全体の統一ルールをかなり重視するなら、Redux 系の方が合うこともあります。