Skip to content
Development
Skill

/vue-debug-guides

Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues. Use when diagnosing or fixing Vue issues.

From plugin
nuxt-skills
71125 skills1 MCP
Install
$ npx -y skills add onmax/nuxt-skills --skill vue-debug-guides --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/vue-debug-guides

Context preview

The summary Claude sees to decide when to auto-load this skill.

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-debug-guides.SKILL.md
name: vue-debug-guides
description: Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues. Use when diagnosing or fixing Vue issues.

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](reference/reactivity-debugging-hooks.md)
  • Ref values not updating due to missing .value access → See [ref-value-access](reference/ref-value-access.md)
  • State stops updating after destructuring reactive objects → See [reactive-destructuring](reference/reactive-destructuring.md)
  • Refs inside arrays, Maps, or Sets not unwrapping → See [refs-in-collections-need-value](reference/refs-in-collections-need-value.md)
  • Nested refs rendering as [object Object] in templates → See [template-ref-unwrapping-top-level](reference/template-ref-unwrapping-top-level.md)
  • Reactive proxy identity comparisons always return false → See [reactivity-proxy-identity-hazard](reference/reactivity-proxy-identity-hazard.md)
  • Third-party instances breaking when proxied → See [reactivity-markraw-for-non-reactive](reference/reactivity-markraw-for-non-reactive.md)
  • Watchers only firing once per tick unexpectedly → See [reactivity-same-tick-batching](reference/reactivity-same-tick-batching.md)

Computed

  • Computed getter triggers mutations or requests unexpectedly → See [computed-no-side-effects](reference/computed-no-side-effects.md)
  • Mutating computed values causes changes to disappear → See [computed-return-value-readonly](reference/computed-return-value-readonly.md)
  • Computed value never updates after conditional logic → See [computed-conditional-dependencies](reference/computed-conditional-dependencies.md)
  • Sorting or reversing arrays breaks original state → See [computed-array-mutation](reference/computed-array-mutation.md)
  • Passing parameters to computed properties fails → See [computed-no-parameters](reference/computed-no-parameters.md)

Watchers

  • Async operations overwriting with stale data → See [watch-async-cleanup](reference/watch-async-cleanup.md)
  • Creating watchers inside async callbacks → See [watch-async-creation-memory-leak](reference/watch-async-creation-memory-leak.md)
  • Watcher never triggers for reactive object properties → See [watch-reactive-property-getter](reference/watch-reactive-property-getter.md)
  • Async watchEffect misses dependencies after await → See [watcheffect-async-dependency-tracking](reference/watcheffect-async-dependency-tracking.md)
  • DOM reads are stale inside watcher callbacks → See [watch-flush-timing](reference/watch-flush-timing.md)
  • Deep watchers report identical old/new values → See [watch-deep-same-object-reference](reference/watch-deep-same-object-reference.md)
  • watchEffect runs before template refs update → See [watcheffect-flush-post-for-refs](reference/watcheffect-flush-post-for-refs.md)

Components

  • Child component throws "component not found" error → See [local-components-not-in-descendants](reference/local-components-not-in-descendants.md)
  • Click listener doesn't fire on custom component → See [click-events-on-components](reference/click-events-on-components.md)
  • Parent can't access child ref data in script setup → See [component-ref-requires-defineexpose](reference/component-ref-requires-defineexpose.md)
  • HTML template parsing breaks Vue component syntax → See [in-dom-template-parsing-caveats](reference/in-dom-template-parsing-caveats.md)
  • Wrong component renders due to naming collisions → See [component-naming-conflicts](reference/component-naming-conflicts.md)
  • Parent styles don't apply to multi-root component → See [multi-root-component-class-attrs](reference/multi-root-component-class-attrs.md)

Props & Emits

  • Variables referenced in defineProps cause errors → See [prop-defineprops-scope-limitation](reference/prop-defineprops-scope-limitation.md)
  • Component emits undeclared event causing warnings → See [declare-emits-for-documentation](reference/declare-emits-for-documentation.md)
  • defineEmits used inside function or conditional → See [defineEmits-must-be-top-level](reference/defineEmits-must-be-top-level.md)
  • defineEmits has both type and runtime arguments → See [defineEmits-no-runtime-and-type-mixed](reference/defineEmits-no-runtime-and-type-mixed.md)
  • Native event listeners not responding to clicks → See [native-event-collision-with-emits](reference/native-event-collision-with-emits.md)
  • Component event fires twice when clicking → See [undeclared-emits-double-firing](reference/undeclared-emits-double-firing.md)

Templates

  • Getting template compilation errors with statements → See [template-expressions-restrictions](reference/template-expressions-restrictions.md)
  • "Cannot read property of undefined" runtime errors → See [v-if-null-check-order](reference/v-if-null-check-order.md)
  • Dynamic directive arguments not working properly → See [dynamic-argument-constraints](reference/dynamic-argument-constraints.md)
  • v-else elements rendering unconditionally always → See [v-else-must-follow-v-if](reference/v-else-must-follow-v-if.md)
  • Mixing v-if with v-for causes precedence bugs and migration breakage → See [no-v-if-with-v-for](reference/no-v-if-with-v-for.md)
  • Template function calls mutating state cause unpredictable re-render bugs → See [template-functions-no-side-effects](reference/template-functions-no-side-effects.md)
  • Child components in loops showing undefined data → See [v-for-component-props](reference/v-for-component-props.md)
  • Array order changing after sorting or reversing → See [v-for-computed-reverse-sort](reference/v-for-computed-reverse-sort.md)
  • List items disappearing or swapping state unexpectedly → See [v-for-key-attribute](reference/v-for-key-attribute.md)
  • Getting off-by-one errors with range iteration → See [v-for-range-st
Read more
Ships withnuxt-skills

Vue, Nuxt, and NuxtHub skills for AI coding assistants.

Get the whole plugin
Stats
711
Stars
37
Forks
Active
Maintenance
TypeScript
Language
23h ago
Last commit
9mo ago
Created

Repo: onmax/nuxt-skills

Other skills on nuxt-skills.