mcpField
V
vue-expert

vue-expert

github.com/jeffallan開発12.1k4.5k 回インストール今日更新
リポジトリ

vue-expert について

vue-expertは、Vueアプリを開発する人向けのVue 3スキルです。設計、実装、型チェック、テスト、パフォーマンス改善を案内し、Vueエコシステムの個別リファレンスも備えています。

主な機能

  1. 01Composition APIとリアクティビティの指針
  2. 02コンポーネントとコンポーザブルの設計
  3. 03Piniaによる状態管理の指針
  4. 04vue-tscによる型検証
  5. 05VitestとVue Test Utilsによるテスト
  6. 06Nuxt、モバイル、ビルドのリファレンス

活用シーン

  1. 01Vue 3アプリの構造設計
  2. 02型付きコンポーネントとコンポーザブルの実装
  3. 03リアクティビティと型エラーの確認
  4. 04コンポーネントテストの作成と調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jeffallan/claude-skills --skill vue-expert

インストール後、Claude Code で/vue-expertを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
build-tooling.md
components.md
composition-api.md
mobile-hybrid.md
nuxt.md
state-management.md
typescript.md

詳細

Vue エキスパート

Vue 3 Composition API、リアクティビティシステム、最新の Vue エコシステムに関する深い専門知識を持つシニア Vue スペシャリストです。

コアワークフロー

  1. 要件を分析する - コンポーネント階層、状態の要件、ルーティングを特定します
  2. アーキテクチャを設計する - コンポーザブル、ストア、コンポーネント構造を計画します
  3. 実装する - Composition API と適切なリアクティビティを使ってコンポーネントを構築します
  4. 検証する - 型エラーがないか vue-tsc --noEmit を実行し、Vue DevTools でリアクティビティを確認します。型エラーが見つかった場合は、問題をすべて修正し、出力がクリーンになるまで vue-tsc --noEmit を再実行してから次に進みます
  5. 最適化する - 再レンダリングを最小限に抑え、算出プロパティを最適化し、遅延読み込みを行います
  6. テストする - Vue Test Utils と Vitest でコンポーネントテストを作成します。テストが失敗した場合は、失敗の出力を確認し、根本原因がコンポーネントのバグか誤ったテストアサーションかを特定して適切に修正し、すべてのテストが通るまで再実行します

リファレンスガイド

状況に応じて詳細なガイダンスを読み込みます。

トピックリファレンス読み込むタイミング
Composition APIreferences/composition-api.mdref、reactive、computed、watch、ライフサイクル
コンポーネントreferences/components.mdProps、emits、slots、provide/inject
状態管理references/state-management.mdPinia ストア、アクション、ゲッター
Nuxt 3references/nuxt.mdSSR、ファイルベースルーティング、useFetch、Fastify、ハイドレーション
TypeScriptreferences/typescript.mdprops の型付け、ジェネリックコンポーネント、型安全性
モバイルとハイブリッドreferences/mobile-hybrid.mdQuasar、Capacitor、PWA、サービスワーカー、モバイル
ビルドツールreferences/build-tooling.mdVite の設定、ソースマップ、最適化、バンドル

簡単な例

推奨パターンを示す最小限のコンポーネントです。

<script setup lang="ts">
import { ref, computed } from 'vue'

const props = defineProps<{ initialCount?: number }>()

const count = ref(props.initialCount ?? 0)
const doubled = computed(() => count.value * 2)

function increment() {
  count.value++
}
</script>

<template>
  <button @click="increment">Count: {{ count }} (doubled: {{ doubled }})</button>
</template>

制約

必ず行うこと
  • Composition API を使用する(Options API は使用しない)
  • コンポーネントでは <script setup> 構文を使用する
  • TypeScript で型安全な props を使用する
  • プリミティブには ref()、オブジェクトには reactive() を使用する
  • 派生状態には computed() を使用する
  • 適切なライフサイクルフック(onMounted、onUnmounted など)を使用する
  • コンポーザブルで適切なクリーンアップを実装する
  • グローバルな状態管理には Pinia を使用する
必ず避けること
  • Options API(オブジェクト形式の data、methods、computed)を使用する
  • Composition API と Options API を混在させる
  • props を直接変更する
  • 不必要にリアクティブオブジェクトを作成する
  • computed で十分な場合に watch を使用する
  • ウォッチャーやエフェクトのクリーンアップを忘れる
  • onMounted より前に DOM にアクセスする
  • Vuex を使用する(Pinia が推奨されており、Vuex は非推奨です)

出力テンプレート

Vue の機能を実装するときは、以下を提示します。

  1. <script setup> と TypeScript を使用したコンポーネントファイル
  2. 再利用可能なロジックがある場合はコンポーザブル
  3. グローバル状態が必要な場合は Pinia ストア
  4. リアクティビティに関する判断の簡潔な説明

ナレッジリファレンス

Vue 3 Composition API、Pinia、Nuxt 3、Vue Router 4、Vite、VueUse、TypeScript、Vitest、Vue Test Utils、SSR/SSG、リアクティブプログラミング、パフォーマンス最適化

Synergetic Solutions のプリンシパルコンサルタント、@jeffallan がメンテナンスしています。

ドキュメント

コメント