mcpField
Z
zustand-store-ts

zustand-store-ts

github.com/sickn33開発48.7k297 回インストール今日更新
リポジトリ

zustand-store-ts について

zustand-store-tsは、TypeScriptの型とミドルウェアを用いたZustandストア作成のスキルです。セレクター購読、状態とアクションの分離、Reactでのセレクター利用、テストの指針を示します。

主な機能

  1. 01状態とアクションの型定義
  2. 02セレクターによる購読
  3. 03個別のReactセレクター
  4. 04React外での状態購読
  5. 05ストアの公開とテストの整理

活用シーン

  1. 01型付きZustandストアの作成
  2. 02不要なReact再レンダーの削減
  3. 03React外での選択状態の変更検知
  4. 04ストアの公開とテストの整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill zustand-store-ts

インストール後、Claude Code で/zustand-store-tsを入力して読み込まれたか確認します。

詳細

Zustand ストア

確立されたパターンに従い、適切な TypeScript 型とミドルウェアを使用して Zustand ストアを作成します。

クイックスタート

assets/template.ts は同梱されていません。インラインの例を、インストールされている Zustand のバージョンと実際のプロジェクトの型に合わせて調整してください。これらは断片であり、完全なアプリケーションではありません。

セレクターによる購読には subscribeWithSelector を使用する

import { create } from 'zustand';
import { subscribeWithSelector } from 'zustand/middleware';

export const useMyStore = create<MyStore>()(
  subscribeWithSelector((set, get) => ({
    // state and actions
  }))
);

状態とアクションを分離する

export interface MyState {
  items: Item[];
  isLoading: boolean;
}

export interface MyActions {
  addItem: (item: Item) => void;
  loadItems: () => Promise<void>;
}

export type MyStore = MyState & MyActions;

個別のセレクターを使用する

// Good - only re-renders when `items` changes
const items = useMyStore((state) => state.items);

// Avoid - re-renders on any state change
const { items, isLoading } = useMyStore();

React の外部で購読する

useMyStore.subscribe(
  (state) => state.selectedId,
  (selectedId) => console.log('Selected:', selectedId)
);

統合手順

  1. src/frontend/src/store/ にストアを作成します
  2. src/frontend/src/store/index.ts からエクスポートします
  3. src/frontend/src/store/*.test.ts にテストを追加します

使用する場合

このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。

制限事項

  • タスクが上記の範囲に明確に該当する場合にのみ、このスキルを使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認してください。

コメント