zustand-store-ts について
zustand-store-tsは、TypeScriptの型とミドルウェアを用いたZustandストア作成のスキルです。セレクター購読、状態とアクションの分離、Reactでのセレクター利用、テストの指針を示します。
主な機能
- 01状態とアクションの型定義
- 02セレクターによる購読
- 03個別のReactセレクター
- 04React外での状態購読
- 05ストアの公開とテストの整理
活用シーン
- 01型付きZustandストアの作成
- 02不要なReact再レンダーの削減
- 03React外での選択状態の変更検知
- 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)
);
統合手順
src/frontend/src/store/にストアを作成しますsrc/frontend/src/store/index.tsからエクスポートしますsrc/frontend/src/store/*.test.tsにテストを追加します
使用する場合
このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。
制限事項
- タスクが上記の範囲に明確に該当する場合にのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認してください。
コメント
Markdown 対応