Pinia
Pinia is the official state management library for Vue, designed to be intuitive and type-safe. It supports both Options API and Composition API styles, with first-class TypeScript support and devtools integration. > The skill is based on Pinia v3.0.4, generated at 2026-01-28. Topic
Pinia
Pinia is the official state management library for Vue, designed to be intuitive and type-safe. It supports both Options API and Composition API styles, with first-class TypeScript support and devtools integration.
The skill is based on Pinia v3.0.4, generated at 2026-01-28.
Core References
Topic
Description
Reference
Stores
Defining stores, state, getters, actions, storeToRefs, subscriptions
Features
Extensibility
Topic
Description
Reference
Plugins
Extend stores with custom properties, state, and behavior
Composability
Topic
Description
Reference
Composables
Using Vue composables within stores (VueUse, etc.)
Composing Stores
Store-to-store communication, avoiding circular dependencies
Best Practices
Topic
Description
Reference
Testing
Unit testing with @pinia/testing, mocking, stubbing
Outside Components
Using stores in navigation guards, plugins, middlewares
Advanced
Topic
Description
Reference
SSR
Server-side rendering, state hydration
Nuxt
Nuxt integration, auto-imports, SSR best practices
HMR
Hot module replacement for development
Key Recommendations
- Prefer Setup Stores for complex logic, composables, and watchers
- Use
storeToRefs() when destructuring state/getters to preserve reactivity
- Actions can be destructured directly - they're bound to the store
- Call stores inside functions not at module scope, especially for SSR
- Add HMR support to each store for better development experience
- Use
@pinia/testing for component tests with mocked stores