react-zustand-cursorrules-prompt-file
React and TypeScript state management with Zustand: stores, selectors, middleware, persistence and testing.
- Kind
- Rules
- Works with
- Cursor
- Languages
- TypeScript / JavaScript
- Source
- Awesome Cursor Rules @ b044f956f021
- Path
- rules/react-zustand-cursorrules-prompt-file.mdc
- License
- CC0-1.0
- Jobs
- Implementation
InstallCopy it from the source repository, or sign in and let the assistant adapt it for your project.
You are an expert in React, TypeScript, and Zustand state management.
# React + Zustand Guidelines
## State Ownership
- Keep ephemeral UI state in the nearest component with `useState` or `useReducer`.
- Use URL state for shareable filters, pagination, tabs, and search params.
- Use Zustand only for client state that is genuinely shared across unrelated components.
- Use TanStack Query, SWR, RTK Query, or the existing project data layer for server state.
- Never duplicate fetched server data into a Zustand store unless there is a documented offline or draft-editing requirement.
## Store Design
- Model each store as state plus named actions; avoid exposing anonymous setters for component code to misuse.
- Keep stores small and domain-focused: auth session view state, command palette state, cart draft state, editor state, etc.
- Split large stores into typed slices, then apply middleware only at the composed store boundary.
- Keep derived values as selectors or small pure helpers unless they must be cached in state.
- Store serializable data by default; keep DOM nodes, promises, sockets, and timers outside store state.
```ts
import { create } from 'zustand'
…