ページ内ナビ
概要
Zustandは、React向けの小さな状態管理ライブラリです。createでstore hookを作り、コンポーネントからselectorで必要な状態だけを購読します。providerを必須にせず、middlewareで永続化やdevtools連携などを追加できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
向いている用途
Reactアプリで共有状態を簡潔に管理したい場合に向く
フォームをまたぐ共有状態、画面間のUI状態、クライアント側のアプリ状態などを、Reduxより少ない定型コードで管理したいケースに向きます。React依存なしのvanilla storeも利用できます。
出典:[2]
導入前の確認
stateの置換ではactionまで消さないよう注意する
setの第2引数をtrueにするとmergeではなくstate全体を置換するため、store内のactionも消去できます。全置換を使う場合は保持する値を明示してください。
出典:[2]
React Server Componentsでmodule-level storeを共有しない
READMEはReact Server Componentsでhook storeの状態を共有する使い方について、予期しない不具合や利用者間のprivacy問題につながる可能性を警告しています。RSCではrequest境界を考慮したstore設計が必要です。
出典:[2]
参考にした公式資料
- [1]pmndrs/zustand repository(2026-09-30)
- [2]Zustand README(2026-09-30)
- [3]Zustand package metadata(2026-09-30)
- [4]Zustand MIT license(2026-09-30)
編集部からの補足
providerなしで小さく始められますが、selector設計とstore境界は再描画やSSR/RSCの安全性に直結します。特にServer Componentsではrequest間で状態を共有しない設計を先に決める必要があります。
3ステップで試す
- 1
Zustandを追加
公式READMEの手順で既存のReact projectへZustandを追加します。
npm install zustand - 2
store hookを作成
import { create } from 'zustand'; の後で、stateとactionを持つ最小storeを作ります。
const useBearStore = create((set) => ({ bears: 0, increase: () => set((state) => ({ bears: state.bears + 1 })) })) - 3
componentから必要なstateだけ購読
selectorで必要な値だけを購読し、actionも同じstore hookから取得して画面操作につなげます。
const bears = useBearStore((state) => state.bears)
成長
成長の推移 · 直近30日
58,774 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 1
- Open PR
- 5
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- hooks
- react
- react-context
- reactjs
- redux
- state-management
- hacktoberfest
- Stars
- 58,774
- Forks
- 2,192
- Watchers
- 202
- Open Issues
- 2
- Contributors
- 337
- 所有者種別
- Organization
- 主要言語
- TypeScript
- ライセンス
- MIT
- リポジトリ最終更新
- 2026/09/29
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- TanStack Query50,383 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
remote/server stateのfetch・cache・refetch・mutationをUI frameworkから分離して管理するasync state library
TypeScript - React Hook Form44,866 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
React formの入力登録・validation・submit・dynamic fieldをHooksで管理する
TypeScript - tRPC40,677 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
サーバーとクライアントの型をつなぎ、API変更の食い違いを開発中に見つける
TypeScript - Chakra UI40,674 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
React component・Ark UI primitive・design tokenを共通のaccessible design systemへまとめる
TypeScript - CopilotKit37,609 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
AIエージェントの対話、生成画面、共同操作を製品へ組み込む
TypeScript - Expo52,489 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
React NativeアプリをAndroid・iOS・Webへ一つのprojectから展開する
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。