Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

zustand-patterns

ReduxではなくZustandでReactの状態管理を実装する際に参照するスキルで、Zustand 5.xにおけるスライス・ミドルウェア・Immer・useShallow・永続化・セレクター・devtools連携を網羅します。TypeScriptサンプルとアンチパターンを含む7つのコアパターンを文書化しており、Zustandを用いた状態設計時に活用できます。

description の原文を見る

Reference for Zustand 5.x state management including slices, middleware, Immer, useShallow, persistence, selectors, and devtools integration. Documents 7 core patterns with TypeScript examples and anti-patterns. Use when building React state management with Zustand instead of Redux.

SKILL.md 本文

Zustand パターン

Zustand 5.xを使った最新の状態管理 - 軽量でTypeScript優先、ボイラープレートなし。

概要

  • Redux複雑さのないグローバル状態
  • プロップドリリングなしでコンポーネント間で共有される状態
  • localStorage/sessionStorageによる永続化された状態
  • セレクターを使った計算/派生状態
  • ミドルウェア(ログ、devtools、永続化)が必要な状態

コアパターン

基本的なストア、スライス、Immer、persist、セレクター、非同期アクション、devtoolsをカバーしています。

すべての7つのコアパターンの完全なコード例については、Read("${CLAUDE_SKILL_DIR}/references/core-patterns.md")をロードしてください。

クイックリファレンス

// ✅ ダブルコールパターンで型付きストアを作成
const useStore = create<State>()((set, get) => ({ ... }));

// ✅ すべての状態アクセスでセレクターを使用
const count = useStore((s) => s.count);

// ✅ 複数の値にはuseShallowを使用(Zustand 5.x)
const { a, b } = useStore(useShallow((s) => ({ a: s.a, b: s.b })));

// ✅ ミドルウェアの順序: immer → subscribeWithSelector → devtools → persist
create(persist(devtools(immer((set) => ({ ... })))))

// ❌ ストア全体を分割代入しない
const store = useStore(); // ANY変更で再レンダリング

// ❌ サーバー状態を保存しない(TanStack Queryを代わりに使用)
const useStore = create((set) => ({ users: [], fetchUsers: async () => ... }));

主な決定事項

決定項目オプションAオプションB推奨
状態構造単一ストア複数ストア単一ストア内のスライス - クロススライスアクセスが簡単
ネストされた更新スプレッド演算子ImmerミドルウェアImmer - 深くネストされた状態(3+レベル)
永続化手動localStoragepersistミドルウェアpersistミドルウェア with partialize
複数の値複数セレクターuseShallowuseShallow - 2~5個の関連値
サーバー状態ZustandTanStack QueryTanStack Query - Zustandはクライアント専用状態向け
DevTools常に有効条件付き条件付き - enabled: process.env.NODE_ENV === 'development'

アンチパターンと統合

禁止されたパターン(ストア分割代入、派生状態、サーバー状態、直接変更)およびReact Queryの統合ガイダンス。

アンチパターン例とTanStack Query分離パターンについては、Read("${CLAUDE_SKILL_DIR}/references/anti-patterns-and-integration.md")をロードしてください。

関連スキル

  • tanstack-query-advanced - サーバー状態管理(クライアント状態用のZustandと共に使用)
  • form-state-patterns - フォーム状態(React Hook Formとフォーム用Zustandの比較)
  • react-server-components-framework - ZustandとのRSCハイドレーション考慮事項

機能の詳細

store-creation

キーワード: zustand, create, store, typescript, state 解決: 適切なTypeScript推論で型安全なZustandストアのセットアップ

slices-pattern

キーワード: slices, modular, split, combine, StateCreator 解決: 大規模ストアをメンテナンス可能で領域固有のスライスに整理

middleware-stack

キーワード: immer, persist, devtools, middleware, compose 解決: イミュータビリティ、永続化、デバッグのための正しい順序でのミドルウェア結合

selector-optimization

キーワード: selector, useShallow, re-render, performance, memoization 解決: 適切なセレクターパターンで不要な再レンダリングの防止

persistence-migration

キーワード: persist, localStorage, sessionStorage, migrate, version 解決: バージョン間のスキーマ移行による状態の永続化

リファレンス

Read("${CLAUDE_SKILL_DIR}/references/<file>") でオンデマンドロード:

ファイル内容
core-patterns.md基本ストア、スライス、Immer、persist、セレクター、非同期、devtools
anti-patterns-and-integration.md禁止パターンとReact Query統合
middleware-composition.md正しい順序での複数ミドルウェア結合

その他のリソース:

  • ロード: Read("${CLAUDE_SKILL_DIR}/scripts/store-template.ts") - プロダクション対応ストアテンプレート
  • ロード: Read("${CLAUDE_SKILL_DIR}/checklists/zustand-checklist.md") - 実装チェックリスト

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
yonatangross
リポジトリ
yonatangross/orchestkit
ライセンス
MIT
最終更新
不明

Source: https://github.com/yonatangross/orchestkit / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: yonatangross · yonatangross/orchestkit · ライセンス: MIT