vue-debug-guides
Vue 3のランタイムエラー、警告、非同期処理の失敗、SSR/ハイドレーションの問題に関するデバッグとエラーハンドリングを支援します。Vueに関する問題の診断や修正が必要なときに使用してください。
description の原文を見る
Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues. Use when diagnosing or fixing Vue issues.
SKILL.md 本文
Vue 3 のランタイム問題、警告、非同期エラー、ハイドレーション バグのデバッグおよびエラー処理。
開発のベストプラクティスと一般的な落とし穴については、vue-best-practices を参照してください。
リアクティビティ
- 予期しないリレンダリングと状態更新のトレース →
reactivity-debugging-hooksを参照 - .value アクセスの欠落により Ref 値が更新されない →
ref-value-accessを参照 - リアクティブオブジェクトの分割代入後に状態更新が停止 →
reactive-destructuringを参照 - 配列、Map、Set 内の Ref がアンラップされない →
refs-in-collections-need-valueを参照 - ネストされた Ref がテンプレートで [object Object] として表示される →
template-ref-unwrapping-top-levelを参照 - リアクティブプロキシの同一性比較が常に false を返す →
reactivity-proxy-identity-hazardを参照 - プロキシ化されると third-party インスタンスが破損する →
reactivity-markraw-for-non-reactiveを参照 - ウォッチャーが予期せずにティックごとに 1 回だけ発火 →
reactivity-same-tick-batchingを参照
Computed
- Computed ゲッターが予期せず変異やリクエストをトリガー →
computed-no-side-effectsを参照 - Computed 値を変異させると変更が消える →
computed-return-value-readonlyを参照 - 条件付きロジック後に Computed 値が更新されない →
computed-conditional-dependenciesを参照 - 配列のソート・リバースが元の状態を破損 →
computed-array-mutationを参照 - Computed プロパティへのパラメータ渡しが失敗 →
computed-no-parametersを参照
ウォッチャー
- 非同期操作が古いデータで上書きされる →
watch-async-cleanupを参照 - 非同期コールバック内でウォッチャーを作成 →
watch-async-creation-memory-leakを参照 - ウォッチャーがリアクティブオブジェクトプロパティをトリガーしない →
watch-reactive-property-getterを参照 - 非同期 watchEffect が await 後に依存性を見落とす →
watcheffect-async-dependency-trackingを参照 - ウォッチャーコールバック内の DOM 読み込みが古い値を返す →
watch-flush-timingを参照 - Deep ウォッチャーが同一の old/new 値を報告 →
watch-deep-same-object-referenceを参照 - watchEffect がテンプレート ref の更新前に実行 →
watcheffect-flush-post-for-refsを参照
コンポーネント
- 子コンポーネントが「コンポーネント見つかりません」エラーをスロー →
local-components-not-in-descendantsを参照 - クリック リスナーがカスタムコンポーネント上で発火しない →
click-events-on-componentsを参照 - 親が script setup で子 ref データにアクセスできない →
component-ref-requires-defineexposeを参照 - HTML テンプレート解析が Vue コンポーネント構文を破損 →
in-dom-template-parsing-caveatsを参照 - 名前付け衝突により誤ったコンポーネントがレンダリング →
component-naming-conflictsを参照 - 親スタイルがマルチルートコンポーネントに適用されない →
multi-root-component-class-attrsを参照
Props と Emits
- defineProps で参照された変数がエラーを引き起こす →
prop-defineprops-scope-limitationを参照 - コンポーネントが未宣言イベントを emit して警告が出る →
declare-emits-for-documentationを参照 - defineEmits が関数または条件内で使用されている →
defineEmits-must-be-top-levelを参照 - defineEmits がタイプとランタイム引数の両方を持つ →
defineEmits-no-runtime-and-type-mixedを参照 - ネイティブイベント リスナーがクリックに応答しない →
native-event-collision-with-emitsを参照 - コンポーネント イベントがクリック時に 2 回発火 →
undeclared-emits-double-firingを参照
テンプレート
- ステートメント付きテンプレート コンパイル エラーが発生 →
template-expressions-restrictionsを参照 - 「undefined のプロパティを読み込めません」ランタイム エラー →
v-if-null-check-orderを参照 - 動的ディレクティブ引数が正常に機能しない →
dynamic-argument-constraintsを参照 - v-else 要素が常に無条件にレンダリング →
v-else-must-follow-v-ifを参照 - v-if と v-for の混在が優先度バグと移行の破損を引き起こす →
no-v-if-with-v-forを参照 - テンプレート関数呼び出しによる状態変異が予測不可能なリレンダリング バグを引き起こす →
template-functions-no-side-effectsを参照 - ループ内の子コンポーネントが undefined データを表示 →
v-for-component-propsを参照 - ソート・リバース後に配列の順序が変更 →
v-for-computed-reverse-sortを参照 - リスト項目が予期せず消失または状態が入れ替わる →
v-for-key-attributeを参照 - 範囲イテレーション で off-by-one エラーが発生 →
v-for-range-starts-at-oneを参照 - v-show または v-else がテンプレート要素で機能しない →
v-show-template-limitationを参照
テンプレート Ref
- 要素が条件付きで非表示の場合、Ref が null になる →
template-ref-null-with-v-ifを参照 - Ref 配列インデックスがループ内のデータ配列と一致しない →
template-ref-v-for-orderを参照 - テンプレート ref 名をリファクタリングするとコード内で静かに破損 →
use-template-ref-vue35を参照
フォーム と v-model
- v-model を使用する場合、初期フォーム値が表示されない →
v-model-ignores-html-attributesを参照 - Textarea コンテンツの変更が ref を更新しない →
textarea-no-interpolationを参照 - iOS ユーザーがドロップダウンの最初のオプションを選択できない →
select-initial-value-ios-bugを参照 - 親と子コンポーネントが異なる値を持つ →
define-model-default-value-syncを参照 - オブジェクト プロパティの変更が親と同期されない →
definemodel-object-mutation-no-emitを参照 - リアルタイム検索・検証が中国語・日本語入力で破損 →
v-model-ime-compositionを参照 - Number 入力がゼロの代わりに空の文字列を返す →
v-model-number-modifier-behaviorを参照 - カスタム チェックボックス値がフォーム送信で送信されない →
checkbox-true-false-value-form-submissionを参照
イベント と モディファイア
- 複数のイベント モディファイアをチェーンすると予期しない結果が生じる →
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
- 非同期操作後の provide 呼び出しが静かに失敗 →
provide-inject-synchronous-setupを参照 - 提供された値がどこから来ているかをトレース →
provide-inject-debugging-challengesを参照 - Inject された値がプロバイダー変更時に更新されない →
provide-inject-reactivity-not-automaticを参照 - 複数のコンポーネントが同じデフォルト オブジェクトを共有 →
provide-inject-default-value-factoryを参照
Attrs
- 内部と フォールスルー イベント ハンドラー の両方が実行 →
attrs-event-listener-mergingを参照 - 明示的な属性がフォールスルー値で上書きされる →
fallthrough-attrs-overwrite-vue3を参照 - 属性がラッパー内の誤った要素に適用 →
inheritattrs-false-for-wrapper-componentsを参照
Composable
- Composable が setup コンテキスト外または非同期で呼び出されている →
composable-call-location-restrictionsを参照 - Composable リアクティブ依存性が入力変更時に更新されない →
composable-tovalue-inside-watcheffectを参照 - Composable が外部状態を予期せず変異 →
composable-avoid-hidden-side-effectsを参照 - Composable の戻り値の分割代入がリアクティビティを破損 →
composable-naming-return-patternを参照
Composition API
- 非同期操作後のライフサイクル フックが静かに失敗 →
composition-api-script-setup-async-contextを参照 - 親コンポーネント ref が expose されたプロパティにアクセスできない →
define-expose-before-awaitを参照 - 関数型プログラミングパターンが期待される Vue リアクティビティを破損 →
composition-api-not-functional-programmingを参照 - React Hook メンタルモデルが誤った Composition API の使用を引き起こす →
composition-api-vs-react-hooks-differencesを参照
アニメーション
- DOM ノードが再利用されるとアニメーションがトリガーされない →
animation-key-for-rerenderを参照 - TransitionGroup リスト更新が負荷時に遅く感じる →
animation-transitiongroup-performanceを参照
TypeScript
- 変更可能な props デフォルトがコンポーネント インスタンス間で状態をリーク →
ts-withdefaults-mutable-factory-functionを参照 - reactive() ジェネリック型が ref アンラップの不一致を引き起こす →
ts-reactive-no-generic-argumentを参照 - テンプレート ref がマウント前または v-if アンマウント後に null アクセス エラーをスロー →
ts-template-ref-null-handlingを参照 - オプション boolean props が undefined ではなく false として動作 →
ts-defineprops-boolean-default-falseを参照 - インポートされた defineProps 型が解決不可またはを複雑な型参照で失敗 →
ts-defineprops-imported-types-limitationsを参照 - 型なし DOM イベント ハンドラーが strict TypeScript 設定で失敗 →
ts-event-handler-explicit-typingを参照 - 動的コンポーネント ref がリアクティブコンポーネント警告をトリガー →
ts-shallowref-for-dynamic-componentsを参照 - Union 型テンプレート式がナローイングなしで型チェックに失敗 →
ts-template-type-castingを参照
非同期コンポーネント
- ルート コンポーネントが defineAsyncComponent 遅延読み込みで誤設定 →
async-component-vue-routerを参照 - コンポーネント読み込み時のネットワーク エラーまたはタイムアウト →
async-component-error-handlingを参照 - コンポーネント再アクティベーション後のテンプレート ref が undefined →
async-component-keepalive-ref-issueを参照
Render 関数
- 状態変更後の Render 関数出力が静的なまま →
rendering-render-function-return-from-setupを参照 - 再利用された vnode インスタンスが誤ったレンダリング →
render-function-vnodes-must-be-uniqueを参照 - 文字列コンポーネント名が HTML 要素としてレンダリング →
rendering-resolve-component-for-string-namesを参照 - vnode の内部にアクセスすると Vue 更新時に破損 →
render-function-avoid-internal-vnode-propertiesを参照 - Vue 2 render 関数パターンが Vue 3 でクラッシュ →
rendering-render-function-h-import-vue3を参照 - スロット コンテンツが h() からレンダリングされない →
rendering-render-function-slots-as-functionsを参照
KeepAlive
- ネストされた Vue Router ルートで子コンポーネントが 2 回マウント →
keepalive-router-nested-double-mountを参照 - KeepAlive と Transition アニメーション を組み合わせるとメモリが増加 →
keepalive-transition-memory-leakを参照
トランジション
- JavaScript トランジション フックが done コールバックなしでハング →
transition-js-hooks-done-callbackを参照 - インライン リスト要素でアニメーション移動が失敗 →
transition-group-flip-inline-elementsを参照 - リスト項目がスムーズにアニメーション化するのではなくジャンプ →
transition-group-move-animation-position-absoluteを参照 - Vue 2 から Vue 3 TransitionGroup ラッパー変更がレイアウトを破損 →
transition-group-no-default-wrapper-vue3を参照 - ネストされたトランジションが完了前に切断 →
transition-nested-durationを参照 - スコープ付きスタイルが再利用可能なトランジション ラッパーで機能停止 →
transition-reusable-scoped-styleを参照 - RouterView トランジション が初回レンダリングで予期せずアニメーション化 →
transition-router-view-appearを参照 - CSS トランジション とアニメーション の混在がタイミング問題を引き起こす →
transition-type-when-mixedを参照 - 高速トランジション スワップ中のクリーンアップ フックが見落とされる →
transition-unmount-hook-timingを参照
Teleport
- Teleport ターゲット要素が DOM で見つからない →
teleport-target-must-existを参照 - Teleport コンテンツが SSR ハイドレーションを破損 →
teleport-ssr-hydrationを参照 - スコープ付きスタイルが Teleport コンテンツに適用されない →
teleport-scoped-styles-limitationを参照
Suspense
- Suspense コンポーネントから非同期エラーを処理する必要がある →
suspense-no-builtin-error-handlingを参照 - サーバー側レンダリング で Suspense を使用 →
suspense-ssr-hydration-issuesを参照 - Suspense 下の非同期コンポーネント読み込み・エラー UI が無視される →
async-component-suspense-controlを参照
SSR
- サーバー と クライアント レンダリング の HTML が異なる →
ssr-hydration-mismatch-causesを参照 - ユーザー状態が共有シングルトン ストア からリクエスト間で リーク →
state-ssr-cross-request-pollutionを参照 - ブラウザのみの API がユニバーサル コード パス でサーバー レンダリングをクラッシュ →
ssr-platform-specific-apisを参照
パフォーマンス
- リスト子が親から不安定な props を渡されるため不必要にリレンダリング →
perf-props-stability-update-optimizationを参照 - Computed オブジェクトが同等値にもかかわらず エフェクト を再トリガー →
perf-computed-object-stabilityを参照
SFC (Single File Components)
- コンポーネント script ブロック から名前付きエクスポートを使用しようとする →
sfc-named-exports-forbiddenを参照 - 変更後のテンプレートで変数が更新されない →
sfc-script-setup-reactivityを参照 - スコープ付きスタイルが子コンポーネント要素に適用されない →
sfc-scoped-css-child-component-stylingを参照 - スコープ付きスタイルが動的 v-html コンテンツに適用されない →
sfc-scoped-css-dynamic-contentを参照 - スコープ付きスタイルがスロット コンテンツに適用されない →
sfc-scoped-css-slot-contentを参照 - Tailwind クラスが動的に構築されると見落とされる →
tailwind-dynamic-class-generationを参照 - 再帰コンポーネント が名前衝突のためレンダリングされない →
self-referencing-component-nameを参照
プラグイン
- グローバル プロパティが名前付け衝突を引き起こす理由をデバッグ →
plugin-global-properties-sparinglyを参照 - プラグインが機能しないまたは inject が undefined を返す →
plugin-install-before-mountを参照 - プラグイン グローバル プロパティ が setup ベースのコンポーネントで利用不可 →
plugin-prefer-provide-inject-over-global-propertiesを参照 - プラグイン 型の拡張 エラーが ComponentCustomProperties 型を破損 →
plugin-typescript-type-augmentationを参照
アプリ設定
- アプリ設定メソッドが mount 呼び出し後に機能しない →
configure-app-before-mountを参照 - mount() からアプリ config をチェーン化すると失敗 (mount がコンポーネント インスタンスを返すため) →
mount-return-valueを参照 - require.context ベースのコンポーネント 自動登録が Vite で失敗 →
dynamic-component-registration-viteを参照
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- hyf0
- リポジトリ
- hyf0/vue-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/hyf0/vue-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。