zustand
28
总安装量
28
周安装量
#7361
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill zustand
Agent 安装分布
claude-code
23
opencode
22
codex
20
gemini-cli
19
github-copilot
17
Skill 文档
Community Zustand Best Practices
Comprehensive performance and architecture guide for Zustand state management in React applications. Contains 43 rules across 8 categories, prioritized by impact from critical (store architecture, selector optimization) to incremental (advanced patterns).
When to Apply
Reference these guidelines when:
- Creating new Zustand stores
- Optimizing re-render performance with selectors
- Implementing persistence or middleware
- Integrating Zustand with SSR/Next.js
- Reviewing code for state management patterns
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Store Architecture | CRITICAL | store- |
| 2 | Selector Optimization | CRITICAL | select- |
| 3 | Re-render Prevention | HIGH | render- |
| 4 | State Updates | MEDIUM-HIGH | update- |
| 5 | Middleware Configuration | MEDIUM | mw- |
| 6 | SSR and Hydration | MEDIUM | ssr- |
| 7 | TypeScript Patterns | LOW-MEDIUM | ts- |
| 8 | Advanced Patterns | LOW | adv- |
Quick Reference
1. Store Architecture (CRITICAL)
store-multiple-stores– Use multiple small stores instead of one monolithic storestore-separate-actions– Separate actions from state in dedicated namespacestore-event-naming– Name actions as events not settersstore-colocate-logic– Colocate actions with the state they modifystore-avoid-derived-state– Derive computed values instead of storing themstore-domain-boundaries– Organize stores by feature domain
2. Selector Optimization (CRITICAL)
select-always-use– Always use selectors never subscribe to entire storeselect-atomic-picks– Use atomic selectors for single valuesselect-stable-returns– Ensure selectors return stable referencesselect-custom-hooks– Export custom hooks not raw storeselect-auto-generate– Use auto-generated selectors for large storesselect-memoize-computed– Memoize expensive computed selectorsselect-avoid-inline– Define selectors outside components
3. Re-render Prevention (HIGH)
render-use-shallow– Use useShallow for multi-property selectionsrender-equality-fn– Provide custom equality functions when neededrender-memo-children– Memo children affected by parent store updatesrender-subscribe-external– Use subscribe for non-React consumersrender-avoid-object-returns– Avoid returning new objects from selectorsrender-split-components– Split components to minimize subscription scope
4. State Updates (MEDIUM-HIGH)
update-functional-set– Use functional form when updating based on previous stateupdate-immutable– Never mutate state directlyupdate-shallow-merge– Understand set() shallow merge behaviorupdate-async-actions– Handle async actions with loading and error statesupdate-batch-updates– Batch related updates in single set call
5. Middleware Configuration (MEDIUM)
mw-devtools-actions– Name actions for DevTools debuggingmw-persist-partialize– Use partialize for selective persistencemw-persist-migration– Version and migrate persisted statemw-immer-nested– Use immer for deeply nested state updatesmw-combine-order– Apply middlewares in correct ordermw-slice-middleware– Apply middleware at combined store level
6. SSR and Hydration (MEDIUM)
ssr-skip-hydration– Use skipHydration in SSR contextsssr-manual-rehydrate– Manually rehydrate on client mountssr-hydration-hook– Use custom hook to prevent hydration mismatchssr-check-window– Guard browser APIs with typeof window check
7. TypeScript Patterns (LOW-MEDIUM)
ts-state-creator– Use StateCreator for slice typingts-middleware-inference– Preserve type inference with middlewarets-separate-types– Separate state and actions interfacests-generic-selectors– Type selectors for reusabilityts-bound-store– Type combined stores correctly
8. Advanced Patterns (LOW)
adv-context-stores– Combine Zustand with React Context for dependency injectionadv-transient-updates– Use subscribe for transient updatesadv-computed-getters– Implement computed state with gettersadv-third-party-integration– Integrate with React Query and SWR
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions – Category structure and impact levels
- Rule template – Template for adding new rules
Reference Files
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |