mcpField
V
vue-debug-guides

vue-debug-guides

github.com/vuejs-ai開発3.2k27.1k 回インストール5 日前に更新
リポジトリ

vue-debug-guides について

Vue 3 のデバッグとエラー処理に関するスキルです。症状別に、実行時の問題、警告、非同期処理の失敗、水和の不具合を調べるガイドをまとめています。

主な機能

  1. 01症状からガイドを検索
  2. 02リアクティビティと算出値の問題を網羅
  3. 03ウォッチャーとコンポーネントの調査
  4. 04テンプレート、フォーム、イベントのエラーに対応
  5. 05ライフサイクルとコンポーザブルの調査
  6. 06TypeScript と水和の問題も収録

活用シーン

  1. 01予期しない再描画や状態更新の追跡
  2. 02非同期処理の失敗や古いデータの調査
  3. 03テンプレート、コンポーネント、フォームのエラー診断
  4. 04SSR の水和差異の調査

インストール

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

$npx skills add https://github.com/vuejs-ai/skills --skill vue-debug-guides

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

同梱ファイル

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

reference/
animation-key-for-rerender.md
animation-transitiongroup-performance.md
async-component-error-handling.md
async-component-keepalive-ref-issue.md
async-component-suspense-control.md
async-component-vue-router.md
attrs-event-listener-merging.md
checkbox-true-false-value-form-submission.md
cleanup-side-effects.md
click-events-on-components.md
component-naming-conflicts.md
component-ref-requires-defineexpose.md
composable-avoid-hidden-side-effects.md
composable-call-location-restrictions.md
composable-naming-return-pattern.md
composable-tovalue-inside-watcheffect.md
composition-api-not-functional-programming.md
composition-api-script-setup-async-context.md
composition-api-vs-react-hooks-differences.md
computed-array-mutation.md
computed-conditional-dependencies.md
computed-no-parameters.md
computed-no-side-effects.md
computed-return-value-readonly.md
configure-app-before-mount.md
declare-emits-for-documentation.md
define-expose-before-await.md
define-model-default-value-sync.md
defineEmits-must-be-top-level.md
defineEmits-no-runtime-and-type-mixed.md

詳細

Vue 3 の実行時の問題、警告、非同期処理の失敗、ハイドレーションの不具合に対するデバッグとエラー処理です。 開発のベストプラクティスやよくある落とし穴については、vue-best-practices をご覧ください。

リアクティビティ
算出プロパティ
ウォッチャー
コンポーネント
Props と Emits
テンプレート
テンプレート参照
  • 要素が条件付きで非表示になると ref が null になる → template-ref-null-with-v-if を参照
  • ループ内で ref 配列のインデックスがデータ配列と一致しない → template-ref-v-for-order を参照
  • テンプレート参照の名前を変更すると、コード内で気づかないまま問題が発生する → use-template-ref-vue35 を参照
フォームと v-model
イベントと修飾子
  • 複数のイベント修飾子を連結すると、予期しない結果になります → event-modifier-order-matters を参照してください
  • システム修飾キーを使うと、キーボードショートカットが実行されません → keyup-modifier-timing を参照してください
  • 意図しない修飾キーの組み合わせで、キーボードショートカットが実行されます → exact-modifier-for-precise-shortcuts を参照してください
  • passive 修飾子と prevent 修飾子を組み合わせると、イベントの動作に問題が生じます → no-passive-with-prevent を参照してください
ライフサイクル
  • イベントリスナーを削除しないとメモリーリークが発生します → cleanup-side-effects を参照してください
  • コンポーネントのマウント前は、DOM にアクセスできません → lifecycle-dom-access-timing を参照してください
  • 状態の変更後に DOM を読み取ると、古い値が返されます → dom-update-timing-nexttick を参照してください
  • SSR のレンダリングとクライアントでのハイドレーションの結果が異なります → lifecycle-ssr-awareness を参照してください
  • 非同期に登録されたライフサイクルフックは実行されません → lifecycle-hooks-synchronous-registration を参照してください
スロット
  • スロットコンテンツ内で子コンポーネントのデータにアクセスすると、undefined 値が返されます → slot-render-scope-parent-only を参照してください
  • 名前付きスロットとスコープ付きスロットを組み合わせると、コンパイルエラーが発生します → slot-named-scoped-explicit-default を参照してください
  • ネイティブ HTML 要素で v-slot を使用すると、コンパイルエラーが発生します → slot-v-slot-on-components-or-templates-only を参照してください
  • 暗黙のデフォルトスロットの動作により、コンテンツが予期しない場所に配置されます → slot-implicit-default-content を参照してください
  • スコープ付きスロットの props に、期待される name プロパティがありません → slot-name-reserved-prop を参照してください
  • ラッパーコンポーネントによって、子コンポーネントのスロット機能が損なわれます → slot-forwarding-to-child-components を参照してください
Provide/Inject
属性
コンポーザブル
Composition API
アニメーション
TypeScript
  • 可変なプロパティのデフォルト値により、コンポーネントインスタンス間で状態が漏れる → ts-withdefaults-mutable-factory-functionを参照してください
  • reactive() のジェネリック型指定により、ref のアンラップに不整合が生じる → ts-reactive-no-generic-argumentを参照してください
  • マウント前または v-if によるアンマウント後に、テンプレート参照で null アクセスエラーが発生する → ts-template-ref-null-handlingを参照してください
  • オプショナルな boolean プロパティが undefined ではなく false として動作する → ts-defineprops-boolean-default-falseを参照してください
  • インポートした defineProps の型で、解決不能または複雑な型参照エラーが発生する → ts-defineprops-imported-types-limitationsを参照してください
  • 型指定のない DOM イベントハンドラーが厳格な TypeScript 設定でエラーになる → ts-event-handler-explicit-typingを参照してください
  • 動的コンポーネントの参照によりリアクティブコンポーネントの警告が発生する → ts-shallowref-for-dynamic-componentsを参照してください
  • 型の絞り込みを行わないと、ユニオン型のテンプレート式で型チェックに失敗する → ts-template-type-castingを参照してください
非同期コンポーネント
  • defineAsyncComponent の遅延読み込みをルートコンポーネントで誤って設定する → async-component-vue-routerを参照してください
  • コンポーネントの読み込み時にネットワーク障害やタイムアウトが発生する → async-component-error-handlingを参照してください
  • コンポーネントの再アクティブ化後にテンプレート参照が undefined になる → async-component-keepalive-ref-issueを参照してください
レンダー関数
KeepAlive
トランジション
Teleport
  • DOM 内に Teleport のターゲット要素が見つかりません → teleport-target-must-existを参照してください
  • Teleport で移動したコンテンツにより SSR のハイドレーションが失敗します → teleport-ssr-hydrationを参照してください
  • Teleport で移動したコンテンツにスコープ付きスタイルが適用されません → teleport-scoped-styles-limitationを参照してください
Suspense
SSR
  • サーバーとクライアントのレンダリング結果で HTML が異なります → ssr-hydration-mismatch-causesを参照してください
  • 共有シングルトンストアによって、リクエスト間でユーザーの状態が漏洩します → state-ssr-cross-request-pollutionを参照してください
  • ユニバーサルコードパスでブラウザー専用 API を使用すると、サーバーレンダリングがクラッシュします → ssr-platform-specific-apisを参照してください
パフォーマンス
  • 親から不安定な props が渡されるため、リストの子要素が不要に再レンダリングされます → perf-props-stability-update-optimizationを参照してください
  • 同等の値でも、算出オブジェクトによってエフェクトが再実行されます → perf-computed-object-stabilityを参照してください
SFC(単一ファイルコンポーネント)
プラグイン
アプリの設定
  • mount の呼び出し後にアプリ設定のメソッドが動作しない → configure-app-before-mount を参照してください
  • mount() からアプリ設定をチェーンすると失敗する。mount がコンポーネントインスタンスを返すため → mount-return-value を参照してください
  • require.context ベースのコンポーネント自動登録が Vite で失敗する → dynamic-component-registration-vite を参照してください

コメント