vue-debug-guides
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
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
More from hyf0/vue-skills
vue-best-practices
MUST be used for Vue.js tasks. Strongly recommends Composition API with `<script setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.
21.4Kvue-pinia-best-practices
Pinia stores, state management patterns, store setup, and reactivity with stores.
1.9Kvue-router-best-practices
Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.
1.8Kcreate-adaptable-composable
Create a library-grade Vue composable that accepts maybe-reactive inputs (MaybeRef / MaybeRefOrGetter) so callers can pass a plain value, ref, or getter. Normalize inputs with toValue()/toRef() inside reactive effects (watch/watchEffect) to keep behavior predictable and reactive. Use this skill when user asks for creating adaptable or reusable composables.
1.7Kvue-testing-best-practices
Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.
1.5Kvue-options-api-best-practices
Vue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.
1.5K