Skip to content
Latchkey

Jotai vs Zustand: どちらの状態管理を選ぶか

Jotaiは状態を小さな組み合わせ可能なatomとしてモデル化し、Zustandは状態を単一の最小限のhookベースのストアに集約します。

Jotaiはボトムアップでアトミックなアプローチを取ります。小さなatomを定義して組み合わせ、細粒度のsubscriptionにより、コンポーネントは読み取るatomの分だけ再レンダリングされます。Zustandは、slicesを選択する単一のストアを使い、集約されたシンプルなメンタルモデルを好みます。どちらも小さく、providerが軽量です。Jotaiは細粒度で組み合わせ可能なアトミックな状態で優れ、Zustandは分かりやすい単一ストアのモデルで優れます。

JotaiZustand
モデルアトミック(ボトムアップ)単一ストア
粒度細粒度のatomselectorベースのslices
メンタルモデルatomを組み合わせる1つのストア、slicesを選択
ボイラープレート最小限最小限
最適な用途細粒度で派生的な状態シンプルで集約された状態

ユースケースとモデル

Jotaiは、独立または派生した状態の断片が多く、アトミックな粒度と組み合わせが活きるアプリに向いています。Zustandは、selectorベースの読み取りを備えた単一でシンプルなストアを求めるアプリに向いています。どちらもproviderとボイラープレートを避けます。選択はアトミックな組み合わせか集約されたストアかです。

テストとCI

どちらも軽量で、分離してテストしやすいです。いずれもマネージドrunner上で実行でき、より高速なrunnerは状態とコンポーネントのテスト実行を短縮します。

結論

細粒度で組み合わせ可能なアトミックな状態と派生値が欲しいなら: Jotai。selectorを備えたシンプルな単一ストアが欲しいなら: Zustand。どちらも最小限で優秀です。アトミックな組み合わせ(Jotai)か、集約されたシンプルさ(Zustand)かを選びます。

関連ガイド