Vue 3 applications encounter runtime errors, warning messages, async failures, and SSR hydration issues that are difficult to debug. This skill provides comprehensive debugging guides and solutions for over 100 common Vue 3 development problems.
Descargar el ZIP de la skill
Subir en Claude
Ve a Configuración → Capacidades → Skills → Subir skill
Activa y empieza a usar
Pruébalo
Usando "vue-debug-guides". Why is my computed property not updating?
Resultado esperado:
This is likely a computed property dependency issue. Computed properties in Vue 3 only track reactive dependencies accessed during their getter function. If you are destructuring a reactive object or accessing nested properties after a conditional, the computed may not update. See the 'computed-conditional-dependencies' guide for solutions.
Usando "vue-debug-guides". How do I fix hydration mismatch in Vue SSR?
Resultado esperado:
Hydration mismatches occur when server and client render different content. Common causes include: 1) Using browser-only APIs like localStorage or window, 2) Random values generated during render, 3) CSS causing layout differences. Use onMounted for browser APIs, seed random generators, and use ClientOnly components for dynamic content.
Usando "vue-debug-guides". Why are my template refs undefined?
Resultado esperado:
Template refs are only available after the component mounts. If you try to access them in setup(), they will be undefined. Use onMounted lifecycle hook or watchEffect with flush: 'post' to ensure refs are populated. Also check if the element is conditionally rendered with v-if - refs to v-if elements will be null when the condition is false.
Auditoría de seguridad
SeguroThis skill contains Vue.js debugging guides as markdown documentation. Static analysis flagged patterns in code examples within documentation. All findings are FALSE POSITIVES - backticks are markdown code formatting, URLs are documentation examples, and code snippets showing problematic patterns are educational content, not vulnerabilities. Safe for publication.
Puntuación de calidad
Lo que puedes crear
Debug Reactivity Problems
When Vue components stop updating unexpectedly due to reactive reference issues, destructuring errors, or computed property problems
Fix SSR Hydration Errors
When server-side rendered Vue applications show hydration mismatch warnings or client-server content differences
Resolve Async Component Failures
When lazy-loaded components fail to load, show errors incorrectly, or cause memory leaks in Vue applications
Prueba estos prompts
My Vue 3 component is not updating when I change the data. The ref value changes but the template does not re-render. How do I debug this?
I am getting hydration mismatch warnings in my Nuxt application. The server HTML does not match the client. How do I fix this?
My watcher is not triggering when a nested property changes in a reactive object. I am using deep: true but the callback never fires with the old and new values.
I am using KeepAlive with async components and my application is showing memory leaks. The mounted hook runs multiple times but unmounted never fires. How do I fix this?
Mejores prácticas
- Use Vue DevTools to inspect component state, props, and emitted events in real-time
- Enable Vue's strict mode during development to catch reactivity issues early
- Always declare emits explicitly to avoid accidental duplicate event firing
Evitar
- Destructuring reactive objects directly - this breaks reactivity and must use toRefs or toRaw
- Using v-for without :key - causes rendering issues and unpredictable behavior
- Defining emits only in runtime without type-based declarations - loses type safety
Preguntas frecuentes
Does this skill work with Vue 2?
Can this skill help with performance issues?
Does this cover Nuxt-specific issues?
How do I debug reactive state not updating?
Can this help with TypeScript errors in Vue?
How do I debug async component loading failures?
Detalles del desarrollador
Estructura de archivos
📄 animation-key-for-rerender.md
📄 animation-transitiongroup-performance.md
📄 async-component-error-handling.md
📄 async-component-keepalive-ref-issue.md
📄 async-component-suspense-control.md
📄 async-component-vue-router.md
📄 attrs-event-listener-merging.md
📄 checkbox-true-false-value-form-submission.md
📄 click-events-on-components.md
📄 component-naming-conflicts.md
📄 component-ref-requires-defineexpose.md
📄 composable-avoid-hidden-side-effects.md
📄 composable-call-location-restrictions.md
📄 composable-naming-return-pattern.md
📄 composable-tovalue-inside-watcheffect.md
📄 composition-api-not-functional-programming.md
📄 composition-api-script-setup-async-context.md
📄 composition-api-vs-react-hooks-differences.md
📄 computed-conditional-dependencies.md
📄 computed-return-value-readonly.md
📄 configure-app-before-mount.md
📄 declare-emits-for-documentation.md
📄 define-expose-before-await.md
📄 define-model-default-value-sync.md
📄 defineEmits-must-be-top-level.md
📄 defineEmits-no-runtime-and-type-mixed.md
📄 definemodel-object-mutation-no-emit.md
📄 dom-update-timing-nexttick.md
📄 dynamic-argument-constraints.md
📄 dynamic-component-registration-vite.md
📄 event-modifier-order-matters.md
📄 exact-modifier-for-precise-shortcuts.md
📄 fallthrough-attrs-overwrite-vue3.md
📄 in-dom-template-parsing-caveats.md
📄 inheritattrs-false-for-wrapper-components.md
📄 keepalive-router-nested-double-mount.md
📄 keepalive-transition-memory-leak.md
📄 lifecycle-dom-access-timing.md
📄 lifecycle-hooks-synchronous-registration.md
📄 local-components-not-in-descendants.md
📄 multi-root-component-class-attrs.md
📄 native-event-collision-with-emits.md
📄 perf-computed-object-stability.md
📄 perf-props-stability-update-optimization.md
📄 plugin-global-properties-sparingly.md
📄 plugin-install-before-mount.md
📄 plugin-prefer-provide-inject-over-global-properties.md
📄 plugin-typescript-type-augmentation.md
📄 prop-defineprops-scope-limitation.md
📄 provide-inject-debugging-challenges.md
📄 provide-inject-default-value-factory.md
📄 provide-inject-reactivity-not-automatic.md
📄 provide-inject-synchronous-setup.md
📄 reactivity-debugging-hooks.md
📄 reactivity-markraw-for-non-reactive.md
📄 reactivity-proxy-identity-hazard.md
📄 reactivity-same-tick-batching.md
📄 refs-in-collections-need-value.md
📄 render-function-avoid-internal-vnode-properties.md
📄 render-function-vnodes-must-be-unique.md
📄 rendering-render-function-h-import-vue3.md
📄 rendering-render-function-return-from-setup.md
📄 rendering-render-function-slots-as-functions.md
📄 rendering-resolve-component-for-string-names.md
📄 select-initial-value-ios-bug.md
📄 self-referencing-component-name.md
📄 sfc-named-exports-forbidden.md
📄 sfc-scoped-css-child-component-styling.md
📄 sfc-scoped-css-dynamic-content.md
📄 sfc-scoped-css-slot-content.md
📄 sfc-script-setup-reactivity.md
📄 slot-forwarding-to-child-components.md
📄 slot-implicit-default-content.md
📄 slot-named-scoped-explicit-default.md
📄 slot-render-scope-parent-only.md
📄 slot-v-slot-on-components-or-templates-only.md
📄 ssr-hydration-mismatch-causes.md
📄 ssr-platform-specific-apis.md
📄 state-ssr-cross-request-pollution.md
📄 suspense-no-builtin-error-handling.md
📄 suspense-ssr-hydration-issues.md
📄 tailwind-dynamic-class-generation.md
📄 teleport-scoped-styles-limitation.md
📄 teleport-target-must-exist.md
📄 template-expressions-restrictions.md
📄 template-functions-no-side-effects.md
📄 template-ref-null-with-v-if.md
📄 template-ref-unwrapping-top-level.md
📄 textarea-no-interpolation.md
📄 transition-group-flip-inline-elements.md
📄 transition-group-move-animation-position-absolute.md
📄 transition-group-no-default-wrapper-vue3.md
📄 transition-js-hooks-done-callback.md
📄 transition-nested-duration.md
📄 transition-reusable-scoped-style.md
📄 transition-router-view-appear.md
📄 transition-type-when-mixed.md
📄 transition-unmount-hook-timing.md
📄 ts-defineprops-boolean-default-false.md
📄 ts-defineprops-imported-types-limitations.md
📄 ts-event-handler-explicit-typing.md
📄 ts-reactive-no-generic-argument.md
📄 ts-shallowref-for-dynamic-components.md
📄 ts-template-ref-null-handling.md
📄 ts-withdefaults-mutable-factory-function.md
📄 undeclared-emits-double-firing.md
📄 v-for-computed-reverse-sort.md
📄 v-for-range-starts-at-one.md
📄 v-model-ignores-html-attributes.md
📄 v-model-number-modifier-behavior.md
📄 v-show-template-limitation.md
📄 watch-async-creation-memory-leak.md
📄 watch-deep-same-object-reference.md
📄 watch-reactive-property-getter.md
📄 watcheffect-async-dependency-tracking.md
📄 watcheffect-flush-post-for-refs.md
📄 SKILL.md