Skip to main content

zustand-store-ts

'Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation.

Informations de source

Dépôt
thiagofernandes1987-create/APEX
Dernière activité de la source
18 avril 2026 à 09:35
Langue détectée de SKILL.md
anglais
Étoiles
2
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
zustand-store-ts
description
'Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation.
# Zustand Store Create Zustand stores following established patterns with proper TypeScript types and middleware. ## Quick Start Copy the template from [assets/template.ts](assets/template.ts) and replace placeholders: - `{{StoreName}}` → PascalCase store name (e.g., `Project`) - `{{description}}` → Brief description for JSDoc ## Always Use subscribeWithSelector ```typescript import { create } from 'zustand'; import { subscribeWithSelector } from 'zustand/middleware'; export const useMyStore = create<MyStore>()( subscribeWithSelector((set, get) => ({ // state and actions })) ); ``` ## Separate State and Actions ```typescript export interface MyState { items: Item[]; isLoading: boolean; } export interface MyActions { addItem: (item: Item) => void; loadItems: () => Promise<void>; } export type MyStore = MyState & MyActions; ``` ## Use Individual Selectors ```typescript // Good - only re-renders when `items` changes const items = useMyStore((state) => state.items); // Avoid - re-renders on any state change const { items, isLoading } = useMyStore(); ``` ## Subscribe Outside React ```typescript useMyStore.subscribe( (state) => state.selectedId, (selectedId) => console.log('Selected:', selectedId) ); ``` ## Integration Steps 1. Create store in `src/frontend/src/store/` 2. Export from `src/frontend/src/store/index.ts` 3. Add tests in `src/frontend/src/store/*.test.ts` ## Diff History - **v00.33.0**: Ingested from skills-main --- ## Why This Skill Exists 'Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation. <!-- SR_40: auto-generated from frontmatter `purpose`/`description` (OPP-Phase3). Expand with domain-specific rationale. --> ## When to Use Use this skill when the task requires zustand store ts capabilities. <!-- SR_40: auto-generated from frontmatter `when`/`description` (OPP-Phase3). --> ## What If Fails - condition: Código não disponível para análise <!-- SR_40: auto-generated from frontmatter `what_if_fails` (OPP-Phase3). -->
Voir sur GitHub