pinia

$npx skills add antfu/skills --skill pinia
SKILL.md

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