pinia について
Vue アプリケーションの状態管理に関するリファレンスと推奨事項をまとめた Pinia スキルです。Store、プラグイン、合成、テスト、SSR、Nuxt、HMR に加え、TypeScript と devtools のサポートも扱います。
主な機能
- 01Store の定義、状態、Getter、Action
- 02プラグインと Store の合成
- 03テストとコンポーネント外での利用
- 04SSR、Nuxt、HMR のガイド
- 05リアクティブな Store の利用推奨事項
活用シーン
- 01Vue アプリの状態管理の構成
- 02Store の合成とコンポーザブルの利用
- 03状態をモックした Store のテスト
- 04Nuxt や SSR での Store 管理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ antfu/ skills --skill piniaインストール後、Claude Code で/piniaを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
GENERATION.mdreferences/advanced-hmr.mdadvanced-nuxt.mdadvanced-ssr.mdbest-practices-outside-component.mdbest-practices-testing.mdcore-stores.mdfeatures-composables.mdfeatures-composing-stores.mdfeatures-plugins.md詳細
Pinia
Pinia は Vue の公式状態管理ライブラリで、直感的に使え、型安全性を備えるように設計されています。Options API と Composition API の両方のスタイルをサポートし、TypeScript のファーストクラスサポートと Devtools 連携を提供します。
このスキルは Pinia v4.0.3 に基づいており、2026-09-25 に生成されました。
コアリファレンス
| トピック | 説明 | リファレンス |
|---|---|---|
| ストア | ストア、state、getters、actions、storeToRefs、サブスクリプションの定義 | core-stores |
機能
拡張性
| トピック | 説明 | リファレンス |
|---|---|---|
| プラグイン | カスタムプロパティ、state、動作でストアを拡張します | features-plugins |
コンポーザビリティ
| トピック | 説明 | リファレンス |
|---|---|---|
| コンポーザブル | ストア内で Vue のコンポーザブル(VueUse など)を使用します | features-composables |
| ストアの合成 | ストア間の通信、循環依存の回避 | features-composing-stores |
ベストプラクティス
| トピック | 説明 | リファレンス |
|---|---|---|
| テスト | @pinia/testing を使ったユニットテスト、モック、スタブ | best-practices-testing |
| コンポーネント外での使用 | ナビゲーションガード、プラグイン、ミドルウェアでのストアの使用 | best-practices-outside-component |
高度なトピック
| トピック | 説明 | リファレンス |
|---|---|---|
| SSR | サーバーサイドレンダリング、state のハイドレーション | advanced-ssr |
| Nuxt | Nuxt 連携、自動インポート、SSR のベストプラクティス | advanced-nuxt |
| HMR | 開発時のホットモジュールリプレースメント | advanced-hmr |
主な推奨事項
- 複雑なロジック、コンポーザブル、ウォッチャーには Setup Store を優先してください
- リアクティビティを維持するため、state/getters を分割代入するときは
storeToRefs()を使用してください - actions は直接分割代入できます - ストアにバインドされています
- ストアはモジュールスコープではなく関数内で呼び出してください。特に SSR では重要です
- 開発体験を向上させるため、各ストアに HMR サポートを追加してください
- モックしたストアを使うコンポーネントテストには
@pinia/testingを使用してください
コメント
Markdown 対応