vue-debug-guides
Installation
Summary
Comprehensive Vue 3 debugging reference covering reactivity, components, templates, lifecycle, SSR, and 100+ common runtime issues.
- Organized by feature area (reactivity, computed, watchers, components, templates, forms, lifecycle, SSR, TypeScript, and more) with direct links to specific error scenarios and fixes
- Covers Vue 3 specific gotchas including ref unwrapping, proxy identity hazards, v-model composition events, template ref timing, and hydration mismatches
- Addresses async patterns, watcher cleanup, lifecycle hook timing, and memory leak prevention across composables and event listeners
- Includes SSR and TypeScript debugging guidance for universal code, type safety with generics, and cross-request state pollution
SKILL.md
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