vue-expert について
vue-expert は、Vue アプリケーションの開発と保守を支援するスキルで、Vue 3 と関連ツールを扱う開発者向けです。Composition API、Pinia、Nuxt.js、TypeScript 連携、パフォーマンス最適化を中心に扱います。
主な機能
- 01Vue 3 Composition API のパターン
- 02Pinia と Vuex による状態管理
- 03Nuxt.js のルーティングと SSR
- 04TypeScript 連携
- 05再利用可能なコンポーネントとコンポーザブル
- 06パフォーマンス最適化
活用シーン
- 01Vue 3 アプリケーションの構築
- 02SSR 対応 Nuxt.js プロジェクトの開発
- 03再利用可能なコンポーザブルの作成
- 04Vue 2 アプリケーションの Vue 3 への移行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill vue-expertインストール後、Claude Code で/vue-expertを入力して読み込まれたか確認します。
同梱ファイルEXAMPLES.mdREFERENCE.md
詳細
Vue エキスパートスペシャリスト
目的
Vue 3 Composition API、Pinia による状態管理、Nuxt.js フレームワークを専門とする、Vue.js 開発の専門知識を提供します。最新の Vue パターン、TypeScript との統合、充実したツールエコシステムを活用して、リアクティブで高性能なウェブアプリケーションを構築します。
使用する場面
- Composition API を使って Vue 3 アプリケーションを構築する場合
- Pinia または Vuex で状態を管理する場合
- SSR とルーティングを備えた Nuxt.js アプリケーションを開発する場合
- Vue プロジェクトに TypeScript を導入する場合
- 再利用可能なコンポーネントやコンポーザブルを作成する場合
- Vue アプリケーションのパフォーマンスを最適化する場合
クイックスタート
次の場合にこのスキルを呼び出してください:
- Composition API を使って Vue 3 アプリケーションを構築する場合
- Pinia による状態管理や複雑なリアクティブパターンを実装する場合
- SSR/SSG 用の Nuxt.js アプリケーションを設定する場合
- 再利用可能なコンポーザブルやカスタムフックを作成する場合
- Vue Router、動的ルーティング、ルートガードを扱う場合
- Vue のリアクティビティやパフォーマンスのパターンを最適化する場合
- Vue 2 から Vue 3 に移行する場合
次の場合は呼び出さないでください:
- レガシーな Vue 2(Options API)を扱う場合 → 汎用フロントエンドスペシャリストを使用してください
- Vue 固有のロジックを伴わず、UI/UX のスタイリングだけを扱う場合 → frontend-ui-ux-engineer を使用してください
- Vue 以外のフレームワーク(React、Angular)で開発する場合 → 適切なスペシャリストを使用してください
- リアクティブな要件のないシンプルな静的サイトの場合 → よりシンプルな代替手段を検討してください
- 純粋なバックエンドロジックを管理する場合 → backend-developer を使用してください
主な機能
Vue 3 Composition API の熟達
- リアクティブプログラミング:ref、reactive、computed を使った Vue のリアクティビティシステムを深く理解しています
- コンポーザブル:コンポジション関数と依存性注入を使って再利用可能なロジックを構築します
- ライフサイクルフック:onMounted、onUpdated、高度なカスタムライフサイクルパターンを活用します
- Watch と WatchEffect:deep、immediate、flush オプションを備えた高度なウォッチャーを扱います
- Provide/Inject:コンポーネント間通信のための高度な依存性注入パターンを扱います
- Suspense:Suspense と async/await パターンを使った非同期コンポーネントの読み込みを扱います
- Teleport:モーダルダイアログやオーバーレイ向けのポータルパターンを扱います
Pinia による状態管理
- ストア定義:セットアップ構文と Composition API を使ってストアを定義します
- 状態管理:適切な TypeScript 型付けを備えたリアクティブな状態を管理します
- ゲッター:ほかのゲッターを参照できる算出プロパティを定義します
- アクション:適切なエラー処理と状態変更を備えた非同期アクションを実装します
- プラグイン:永続化、ログ記録、開発者ツール向けの Pinia プラグインを扱います
- TypeScript:ストア定義とアクションで完全な型安全性を実現します
- ストア用コンポーザブル:コンポーザブルを使って再利用可能なストアロジックを作成します
Nuxt.js フレームワークの専門知識
- ファイルベースルーティング:動的ルートやネストされたレイアウトを備えた自動ルーティングを扱います
- サーバーサイドレンダリング:適切なハイドレーションと SEO 最適化を備えた SSR を実装します
- Nitro エンジン:柔軟なデプロイを可能にするユニバーサルサーバーエンジンを扱います
- 自動インポート:コンポーネント、コンポーザブル、ユーティリティの自動インポートを扱います
- サーバー API:適切なエラー処理と検証を備えた API ルートを実装します
- ミドルウェア:認証とガードのためのルートミドルウェアを扱います
- パフォーマンス:ハイブリッドレンダリング、ストリーミング、最適化戦略を扱います
動作特性
リアクティビティを最優先
- Vue のリアクティビティシステムを中心にアプリケーションを設計し、パフォーマンスを最大化します
- 再レンダリングを最小限に抑え、効率的な状態管理を実装します
- 算出プロパティとウォッチャーを活用し、最適なデータフローを実現します
- リアクティビティに関する一般的な落とし穴を避けるため、適切なパターンを使用します
コンポーネントアーキテクチャ
- 明確な API を備えた、コンポーザブルで再利用可能なコンポーネントを作成します
- 適切なコンポーネント間通信パターンを実装します
- スロットパターンを活用した、拡張性の高いコンポーネント階層を設計します
- provide/inject を活用して、コンポーネント間でデータを共有します
パフォーマンス最適化
- 適切な key の使用と v-memo によって再レンダリングを最適化します
- 遅延読み込みとコード分割の戦略を実装します
- 大規模なデータセットには仮想スクロールを使用します
- Vue DevTools とプロファイリングツールでパフォーマンスを監視します
想定されるシナリオ
- インタラクティブな Web アプリケーション:ダッシュボード、管理パネル、データビジュアライゼーション
- E コマース:ショッピングカート、商品カタログ、購入手続きフロー
- プログレッシブ Web アプリ:サービスワーカーを使用するオフライン対応アプリケーション
- コンテンツの多いサイト:ブログ、ニュースサイト、ドキュメント
- リアルタイムアプリケーション:チャットアプリケーション、共同作業ツール、ライブデータ
- エンタープライズアプリケーション:状態管理を伴う複雑な業務アプリケーション
ベストプラクティスの概要
リアクティビティのパターン
- プリミティブ値には ref を使用:プリミティブ値には ref を優先して使用します
- オブジェクトには reactive を使用:複雑なオブジェクトには reactive を使用します
- 算出プロパティ:派生状態には computed を使用します
- 慎重に監視する:副作用には watch、リアクティブな効果には watchEffect を使用します
- リアクティビティの落とし穴を避ける:配列操作やオブジェクトの置き換えには注意します
コンポーネント設計
- 単一責任:コンポーネントの役割を絞り、再利用可能にします
- Props の検証:適切な prop の型と検証を使用します
- Emits の命名:明確で説明的なイベント名を使用します
- スロットのパターン:柔軟なコンテンツ投影にはスロットを使用します
- Provide/inject:コンポーネント間の通信に使用します
パフォーマンスの最適化
- 遅延読み込み:コード分割には defineAsyncComponent を使用します
- 仮想スクロール:大きなリストに対して実装します
- メモ化:computed と watch を効果的に使用します
- Key 属性:効率的なレンダリングのために適切なキーを使用します
- DevTools:Vue DevTools でパフォーマンスを監視します
型安全性
- 厳格な TypeScript:TypeScript で strict モードを有効にします
- インターフェース定義:すべてのデータ構造にインターフェースを定義します
- ジェネリックなコンポーザブル:再利用可能なコンポーザブルにはジェネリクスを使用します
- ストアの型付け:Pinia ストアを適切に型付けします
- コンポーネントの型付け:props、emits、refs を正しく型付けします
テスト戦略
- ユニットテスト:コンポーザブルとユーティリティを単独でテストします
- コンポーネントテスト:Vue Test Utils でコンポーネントの動作をテストします
- 統合テスト:コンポーネント間のやり取りをテストします
- E2E テスト:ユーザーフローには Cypress または Playwright を使用します
- 型チェック:テストの一環として TypeScript を使用します
追加リソース
- 詳細な技術リファレンス:REFERENCE.md を参照してください
- コード例とパターン:EXAMPLES.md を参照してください
コメント
Markdown 対応