Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues.
NewMaintained
Automatic
◆Frontend / UI pack
Last verified 7/26/2026
What it changes
Passed 11 of 22 test cases with the skill, and 11 of 22 without it.
Without skill50%
With skill50%
1 fixed1 passed either way20 still failing0 broke
Pass-rate lift
0 pp
Tokens
+221%
Agent turns
0%
Response time
-43%
Model gemini-3.6-flashMeasured 7/26/2026v12 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
What's inside
The instructions your model reads when the skill loads.
SKILL.md197 linessingle file
Vue 3 debugging and error handling for runtime issues, warnings, async failures, and hydration bugs.
For development best practices and common gotchas, use vue-best-practices.
Reactivity
Tracing unexpected re-renders and state updates → See reactivity-debugging-hooks
Ref values not updating due to missing .value access → See ref-value-access
State stops updating after destructuring reactive objects → See reactive-destructuring
Refs inside arrays, Maps, or Sets not unwrapping → See refs-in-collections-need-value
Nested refs rendering as [object Object] in templates → See template-ref-unwrapping-top-level
Reactive proxy identity comparisons always return false → See reactivity-proxy-identity-hazard
Third-party instances breaking when proxied → See reactivity-markraw-for-non-reactive
Watchers only firing once per tick unexpectedly → See reactivity-same-tick-batching
Computed
Computed getter triggers mutations or requests unexpectedly → See computed-no-side-effects
Mutating computed values causes changes to disappear → See computed-return-value-readonly
Computed value never updates after conditional logic → See computed-conditional-dependencies
Sorting or reversing arrays breaks original state → See computed-array-mutation
Passing parameters to computed properties fails → See computed-no-parameters
Watchers
Async operations overwriting with stale data → See watch-async-cleanup
Creating watchers inside async callbacks → See watch-async-creation-memory-leak
Watcher never triggers for reactive object properties → See watch-reactive-property-getter
Async watchEffect misses dependencies after await → See watcheffect-async-dependency-tracking
DOM reads are stale inside watcher callbacks → See watch-flush-timing
Deep watchers report identical old/new values → See watch-deep-same-object-reference
watchEffect runs before template refs update → See watcheffect-flush-post-for-refs
Components
Child component throws "component not found" error → See local-components-not-in-descendants
Click listener doesn't fire on custom component → See click-events-on-components
Parent can't access child ref data in script setup → See component-ref-requires-defineexpose
HTML template parsing breaks Vue component syntax → See in-dom-template-parsing-caveats
Wrong component renders due to naming collisions → See component-naming-conflicts
Parent styles don't apply to multi-root component → See multi-root-component-class-attrs
Props & Emits
Variables referenced in defineProps cause errors → See prop-defineprops-scope-limitation
Component emits undeclared event causing warnings → See declare-emits-for-documentation