К основному содержанию
скилл

zustand-store-ts — скилл для Claude Code: стор на Zustand с типами

Скилл задаёт шаблон стора Zustand на TypeScript: отдельные типы для состояния и действий, middleware subscribeWithSelector, селекторы.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add microsoft/skills --skill zustand-store-ts -a claude-code
Открыть на GitHub

Что делает zustand-store-ts

Скилл описывает, как писать глобальные сторы на Zustand в React-проекте. Внутри — готовый шаблон assets/template.ts, где вместо плейсхолдеров {{StoreName}} и {{description}} подставляются имя стора в PascalCase и короткое описание для JSDoc.

Правила жёсткие: обёртка subscribeWithSelector из zustand/middleware используется всегда, состояние и действия описываются отдельными интерфейсами и объединяются в тип стора. В компонентах берутся индивидуальные селекторы — так ререндер случается только при изменении нужного поля, а не на любом обновлении стора. Подписка вне React идёт через useMyStore.subscribe с селектором и колбэком.

Дальше четыре шага: создать стор в src/frontend/src/store/, экспортировать из src/frontend/src/store/index.ts, добавить тесты в src/frontend/src/store/*.test.ts. Пути заданы конкретные, так что в проекте с другой структурой папок их придётся поправить — это первое, на что стоит посмотреть перед установкой.

Какие задачи решает

  • завести глобальный стор на Zustand без разнобоя в типах
  • разделить состояние и действия в отдельные интерфейсы
  • подписаться на изменение поля вне React-компонента
  • убрать лишние ререндеры через индивидуальные селекторы
  • разложить файлы стора и тесты по принятой структуре

Примеры запросов агенту

  • создай стор Project по шаблону скилла zustand-store-ts
  • добавь в стор действие loadItems и подписку на selectedId
  • вынеси состояние и действия стора в отдельные интерфейсы

Как установить zustand-store-ts

1Через Skills CLI (Vercel)

npx skills add microsoft/skills --skill zustand-store-ts -a claude-code

2Вручную: положить файлы

~/.claude/skills/zustand-store-ts/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/zustand-store-ts/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора64

Весь набор →
azure-ai Подключает к агенту сервисы Azure: поиск по индексам, распознавание и синтез речи, OCR. Пригодится, когда проект уже живёт в Azure. 6установок azure-keyvault-secrets-rust Подсказывает агенту, как читать и записывать секреты в Azure Key Vault из Rust через официальный крейт azure_security_keyvault_secrets. 6установок frontend-ui-dark-ts Скилл для сборки тёмных React-интерфейсов на Tailwind CSS: тема, glassmorphism, анимации Framer Motion. Пригодится для дашбордов и админок. 5установок pydantic-models-py Скилл задаёт структуру моделей Pydantic v2 по шаблону из пяти вариантов: Base, Create, Update, Response и InDB. Пригодится, когда нужны схемы запросов и ответов API. 5установок azure-resource-lookup Перечисляет и находит ресурсы Azure по подпискам и группам через Azure Resource Graph. Нужен, когда надо увидеть, что вообще развёрнуто. 2установок azure-prepare Готовит проект к деплою через Azure Developer CLI: пишет azure.yaml, инфраструктуру на Bicep или Terraform и Dockerfile. Нужен, когда вы уже выбрали azd. 2установок azure-search-documents-py Подсказывает агенту, как писать код для Azure AI Search на Python: векторный и гибридный поиск, семантический ранжинг, индексы. 2установок azure-eventhub-py Скилл для работы с Azure Event Hubs из Python: отправка событий, чтение партиций, чекпоинты в blob-хранилище. Пригодится, когда агент пишет продюсеров и консьюмеров. 2установок

Похожие

zustand-patterns OrchestKit Справочник по управлению состоянием на Zustand 5.x: слайсы, middleware, Immer, useShallow, персистентность и devtools. Пригодится, когда хочется уйти от Redux без лишнего кода. CX Codex +1 1 400установок zustand bobmatnyc Скилл по zustand: минимальный стейт-менеджер для React на хуках, без провайдеров и лишнего кода. Пригодится, когда глобальное состояние нужно, а Redux не хочется. CX Codex +1 485установок zustand-state-management Mindrally Задаёт правила архитектуры сторов Zustand в React и TypeScript: от нарезки слайсов до SSR и тестов. Помогает избежать лишних ререндеров и ошибок гидратации. CX Codex +1 959установок zustand-5 prowler-cloud Скилл с паттернами управления состоянием в Zustand 5: базовые хранилища, селекторы, persist-middleware и разделение логики на слайсы. Помогает писать чистый реактивный код без лишних ре-рендеров. CX Codex +1 911установок tanstack-store tanstack-skills Скилл по TanStack Store: реактивный стор без привязки к фреймворку, адаптеры для React, Vue, Solid, Angular и Svelte. Пригодится, когда агент пишет состояние на @tanstack/store. CX Codex +1 1 800установок state-management agent-skills Скилл с готовыми паттернами TanStack Query v5 и Zustand v5: запросы, кеш, мутации, оптимистичные обновления и клиентские сторы. CX Codex +1 783установок

Рядом в теме «Фронтенд и UI»

Всё по теме «Фронтенд и UI» →

Вопросы о zustand-store-ts

Как установить zustand-store-ts в Claude?

Выполните npx skills add microsoft/skills --skill zustand-store-ts -a claude-code. После этого файл скилла лежит в ~/.claude/skills/zustand-store-ts/SKILL.md.

Что делает zustand-store-ts?

Даёт шаблон и правила для сторов Zustand на TypeScript: middleware subscribeWithSelector, разделение состояния и действий, индивидуальные селекторы и подписки вне React.

Где скилл размещает файлы стора?

По шагам из скилла стор создаётся в src/frontend/src/store/, экспортируется из src/frontend/src/store/index.ts, а тесты кладутся в src/frontend/src/store/*.test.ts.

Исходный текст

SKILL.md · MIT
---
name: zustand-store-ts
description: Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.
license: MIT
metadata:
  author: Microsoft
  version: "1.0.0"
---

# 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`

© Microsoft · MIT · microsoft/skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой