[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CFRENFES9YFD1M4YKEX8Q6":3,"skill-same:01M6CFRENFES9YFD1M4YKEX8Q6":670},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":53,"install":54,"resources":67},"01M6CFRENFES9YFD1M4YKEX8Q6","vue-debug-guides",null,"Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR\u002Fhydration issues. Use when diagnosing or fixing Vue issues.","rockcookies\u002Fskills","rockcookies","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3498265?v=4","01M6CF9C16X3SDSKZX6ANH7HQM","Jacob He","01M6CF9C53JP821FCW6R9B00AJ",1,"MIT","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38],"debug","vue","vue debug guides","github","ssr","debugging","error handling","issues","use","async","2026-11-10 10:12:30",false,"---\nname: vue-debug-guides\ndescription: >-\n  Vue 3 debugging and error handling for runtime errors, warnings, async\n  failures, and SSR\u002Fhydration issues. Use when diagnosing or fixing Vue issues.\nlicense: MIT\nmetadata:\n  author: github.com\u002Fvuejs-ai\n  version: 19.0.1\n---\n\nVue 3 debugging and error handling for runtime issues, warnings, async failures, and hydration bugs.\nFor development best practices and common gotchas, use `vue-best-practices`.\n\n### Reactivity\n- Tracing unexpected re-renders and state updates → See [reactivity-debugging-hooks](reference\u002Freactivity-debugging-hooks.md)\n- Ref values not updating due to missing .value access → See [ref-value-access](reference\u002Fref-value-access.md)\n- State stops updating after destructuring reactive objects → See [reactive-destructuring](reference\u002Freactive-destructuring.md)\n- Refs inside arrays, Maps, or Sets not unwrapping → See [refs-in-collections-need-value](reference\u002Frefs-in-collections-need-value.md)\n- Nested refs rendering as [object Object] in templates → See [template-ref-unwrapping-top-level](reference\u002Ftemplate-ref-unwrapping-top-level.md)\n- Reactive proxy identity comparisons always return false → See [reactivity-proxy-identity-hazard](reference\u002Freactivity-proxy-identity-hazard.md)\n- Third-party instances breaking when proxied → See [reactivity-markraw-for-non-reactive](reference\u002Freactivity-markraw-for-non-reactive.md)\n- Watchers only firing once per tick unexpectedly → See [reactivity-same-tick-batching](reference\u002Freactivity-same-tick-batching.md)\n\n### Computed\n- Computed getter triggers mutations or requests unexpectedly → See [computed-no-side-effects](reference\u002Fcomputed-no-side-effects.md)\n- Mutating computed values causes changes to disappear → See [computed-return-value-readonly](reference\u002Fcomputed-return-value-readonly.md)\n- Computed value never updates after conditional logic → See [computed-conditional-dependencies](reference\u002Fcomputed-conditional-dependencies.md)\n- Sorting or reversing arrays breaks original state → See [computed-array-mutation](reference\u002Fcomputed-array-mutation.md)\n- Passing parameters to computed properties fails → See [computed-no-parameters](reference\u002Fcomputed-no-parameters.md)\n\n### Watchers\n- Async operations overwriting with stale data → See [watch-async-cleanup](reference\u002Fwatch-async-cleanup.md)\n- Creating watchers inside async callbacks → See [watch-async-creation-memory-leak](reference\u002Fwatch-async-creation-memory-leak.md)\n- Watcher never triggers for reactive object properties → See [watch-reactive-property-getter](reference\u002Fwatch-reactive-property-getter.md)\n- Async watchEffect misses dependencies after await → See [watcheffect-async-dependency-tracking](reference\u002Fwatcheffect-async-dependency-tracking.md)\n- DOM reads are stale inside watcher callbacks → See [watch-flush-timing](reference\u002Fwatch-flush-timing.md)\n- Deep watchers report identical old\u002Fnew values → See [watch-deep-same-object-reference](reference\u002Fwatch-deep-same-object-reference.md)\n- watchEffect runs before template refs update → See [watcheffect-flush-post-for-refs](reference\u002Fwatcheffect-flush-post-for-refs.md)\n\n### Components\n- Child component throws \"component not found\" error → See [local-components-not-in-descendants](reference\u002Flocal-components-not-in-descendants.md)\n- Click listener doesn't fire on custom component → See [click-events-on-components](reference\u002Fclick-events-on-components.md)\n- Parent can't access child ref data in script setup → See [component-ref-requires-defineexpose](reference\u002Fcomponent-ref-requires-defineexpose.md)\n- HTML template parsing breaks Vue component syntax → See [in-dom-template-parsing-caveats](reference\u002Fin-dom-template-parsing-caveats.md)\n- Wrong component renders due to naming collisions → See [component-naming-conflicts](reference\u002Fcomponent-naming-conflicts.md)\n- Parent styles don't apply to multi-root component → See [multi-root-component-class-attrs](reference\u002Fmulti-root-component-class-attrs.md)\n\n### Props & Emits\n- Variables referenced in defineProps cause errors → See [prop-defineprops-scope-limitation](reference\u002Fprop-defineprops-scope-limitation.md)\n- Component emits undeclared event causing warnings → See [declare-emits-for-documentation](reference\u002Fdeclare-emits-for-documentation.md)\n- defineEmits used inside function or conditional → See [defineEmits-must-be-top-level](reference\u002FdefineEmits-must-be-top-level.md)\n- defineEmits has both type and runtime arguments → See [defineEmits-no-runtime-and-type-mixed](reference\u002FdefineEmits-no-runtime-and-type-mixed.md)\n- Native event listeners not responding to clicks → See [native-event-collision-with-emits](reference\u002Fnative-event-collision-with-emits.md)\n- Component event fires twice when clicking → See [undeclared-emits-double-firing](reference\u002Fundeclared-emits-double-firing.md)\n\n### Templates\n- Getting template compilation errors with statements → See [template-expressions-restrictions](reference\u002Ftemplate-expressions-restrictions.md)\n- \"Cannot read property of undefined\" runtime errors → See [v-if-null-check-order](reference\u002Fv-if-null-check-order.md)\n- Dynamic directive arguments not working properly → See [dynamic-argument-constraints](reference\u002Fdynamic-argument-constraints.md)\n- v-else elements rendering unconditionally always → See [v-else-must-follow-v-if](reference\u002Fv-else-must-follow-v-if.md)\n- Mixing v-if with v-for causes precedence bugs and migration breakage → See [no-v-if-with-v-for](reference\u002Fno-v-if-with-v-for.md)\n- Template function calls mutating state cause unpredictable re-render bugs → See [template-functions-no-side-effects](reference\u002Ftemplate-functions-no-side-effects.md)\n- Child components in loops showing undefined data → See [v-for-component-props](reference\u002Fv-for-component-props.md)\n- Array order changing after sorting or reversing → See [v-for-computed-reverse-sort](reference\u002Fv-for-computed-reverse-sort.md)\n- List items disappearing or swapping state unexpectedly → See [v-for-key-attribute](reference\u002Fv-for-key-attribute.md)\n- Getting off-by-one errors with range iteration → See [v-for-range-starts-at-one](reference\u002Fv-for-range-starts-at-one.md)\n- v-show or v-else not working on template elements → See [v-show-template-limitation](reference\u002Fv-show-template-limitation.md)\n\n### Template Refs\n- Ref becomes null when element is conditionally hidden → See [template-ref-null-with-v-if](reference\u002Ftemplate-ref-null-with-v-if.md)\n- Ref array indices don't match data array in loops → See [template-ref-v-for-order](reference\u002Ftemplate-ref-v-for-order.md)\n- Refactoring template ref names breaks silently in code → See [use-template-ref-vue35](reference\u002Fuse-template-ref-vue35.md)\n\n### Forms & v-model\n- Initial form values not showing when using v-model → See [v-model-ignores-html-attributes](reference\u002Fv-model-ignores-html-attributes.md)\n- Textarea content changes not updating the ref → See [textarea-no-interpolation](reference\u002Ftextarea-no-interpolation.md)\n- iOS users cannot select dropdown first option → See [select-initial-value-ios-bug](reference\u002Fselect-initial-value-ios-bug.md)\n- Parent and child components have different values → See [define-model-default-value-sync](reference\u002Fdefine-model-default-value-sync.md)\n- Object property changes not syncing to parent → See [definemodel-object-mutation-no-emit](reference\u002Fdefinemodel-object-mutation-no-emit.md)\n- Real-time search\u002Fvalidation broken for Chinese\u002FJapanese input → See [v-model-ime-composition](reference\u002Fv-model-ime-composition.md)\n- Number input returns empty string instead of zero → See [v-model-number-modifier-behavior](reference\u002Fv-model-number-modifier-behavior.md)\n- Custom checkbox values not submitted in forms → See [checkbox-true-false-value-form-submission](reference\u002Fcheckbox-true-false-value-form-submission.md)\n\n### Events & Modifiers\n- Chaining multiple event modifiers produces unexpected results → See [event-modifier-order-matters](reference\u002Fevent-modifier-order-matters.md)\n- Keyboard shortcuts don't fire with system modifier keys → See [keyup-modifier-timing](reference\u002Fkeyup-modifier-timing.md)\n- Keyboard shortcuts fire with unintended modifier combinations → See [exact-modifier-for-precise-shortcuts](reference\u002Fexact-modifier-for-precise-shortcuts.md)\n- Combining passive and prevent modifiers breaks event behavior → See [no-passive-with-prevent](reference\u002Fno-passive-with-prevent.md)\n\n### Lifecycle\n- Memory leaks from unremoved event listeners → See [cleanup-side-effects](reference\u002Fcleanup-side-effects.md)\n- DOM access fails before component mounts → See [lifecycle-dom-access-timing](reference\u002Flifecycle-dom-access-timing.md)\n- DOM reads return stale values after state changes → See [dom-update-timing-nexttick](reference\u002Fdom-update-timing-nexttick.md)\n- SSR rendering differs from client hydration → See [lifecycle-ssr-awareness](reference\u002Flifecycle-ssr-awareness.md)\n- Lifecycle hooks registered asynchronously never run → See [lifecycle-hooks-synchronous-registration](reference\u002Flifecycle-hooks-synchronous-registration.md)\n\n### Slots\n- Accessing child component data in slot content returns undefined values → See [slot-render-scope-parent-only](reference\u002Fslot-render-scope-parent-only.md)\n- Mixing named and scoped slots together causes compilation errors → See [slot-named-scoped-explicit-default](reference\u002Fslot-named-scoped-explicit-default.md)\n- Using v-slot on native HTML elements causes compilation errors → See [slot-v-slot-on-components-or-templates-only](reference\u002Fslot-v-slot-on-components-or-templates-only.md)\n- Unexpected content placement from implicit default slot behavior → See [slot-implicit-default-content](reference\u002Fslot-implicit-default-content.md)\n- Scoped slot props missing expected name property → See [slot-name-reserved-prop](reference\u002Fslot-name-reserved-prop.md)\n- Wrapper components breaking child slot functionality → See [slot-forwarding-to-child-components](reference\u002Fslot-forwarding-to-child-components.md)\n\n### Provide\u002FInject\n- Calling provide after async operations fails silently → See [provide-inject-synchronous-setup](reference\u002Fprovide-inject-synchronous-setup.md)\n- Tracing where provided values come from → See [provide-inject-debugging-challenges](reference\u002Fprovide-inject-debugging-challenges.md)\n- Injected values not updating when provider changes → See [provide-inject-reactivity-not-automatic](reference\u002Fprovide-inject-reactivity-not-automatic.md)\n- Multiple components share same default object → See [provide-inject-default-value-factory](reference\u002Fprovide-inject-default-value-factory.md)\n\n### Attrs\n- Both internal and fallthrough event handlers execute → See [attrs-event-listener-merging](reference\u002Fattrs-event-listener-merging.md)\n- Explicit attributes overwritten by fallthrough values → See [fallthrough-attrs-overwrite-vue3](reference\u002Ffallthrough-attrs-overwrite-vue3.md)\n- Attributes applying to wrong element in wrappers → See [inheritattrs-false-for-wrapper-components](reference\u002Finheritattrs-false-for-wrapper-components.md)\n\n### Composables\n- Composable called outside setup context or asynchronously → See [composable-call-location-restrictions](reference\u002Fcomposable-call-location-restrictions.md)\n- Composable reactive dependency not updating when input changes → See [composable-tovalue-inside-watcheffect](reference\u002Fcomposable-tovalue-inside-watcheffect.md)\n- Composable mutates external state unexpectedly → See [composable-avoid-hidden-side-effects](reference\u002Fcomposable-avoid-hidden-side-effects.md)\n- Destructuring composable returns breaks reactivity unexpectedly → See [composable-naming-return-pattern](reference\u002Fcomposable-naming-return-pattern.md)\n\n### Composition API\n- Lifecycle hooks failing silently after async operations → See [composition-api-script-setup-async-context](reference\u002Fcomposition-api-script-setup-async-context.md)\n- Parent component refs unable to access exposed properties → See [define-expose-before-await](reference\u002Fdefine-expose-before-await.md)\n- Functional-programming patterns break expected Vue reactivity behavior → See [composition-api-not-functional-programming](reference\u002Fcomposition-api-not-functional-programming.md)\n- React Hook mental model causes incorrect Composition API usage → See [composition-api-vs-react-hooks-differences](reference\u002Fcomposition-api-vs-react-hooks-differences.md)\n\n### Animation\n- Animations fail to trigger when DOM nodes are reused → See [animation-key-for-rerender](reference\u002Fanimation-key-for-rerender.md)\n- TransitionGroup list updates feel laggy under load → See [animation-transitiongroup-performance](reference\u002Fanimation-transitiongroup-performance.md)\n\n### TypeScript\n- Mutable prop defaults leak state between component instances → See [ts-withdefaults-mutable-factory-function](reference\u002Fts-withdefaults-mutable-factory-function.md)\n- reactive() generic typing causes ref unwrapping mismatches → See [ts-reactive-no-generic-argument](reference\u002Fts-reactive-no-generic-argument.md)\n- Template refs throw null access errors before mount or after v-if unmount → See [ts-template-ref-null-handling](reference\u002Fts-template-ref-null-handling.md)\n- Optional boolean props behave as false instead of undefined → See [ts-defineprops-boolean-default-false](reference\u002Fts-defineprops-boolean-default-false.md)\n- Imported defineProps types fail with unresolvable or complex type references → See [ts-defineprops-imported-types-limitations](reference\u002Fts-defineprops-imported-types-limitations.md)\n- Untyped DOM event handlers fail under strict TypeScript settings → See [ts-event-handler-explicit-typing](reference\u002Fts-event-handler-explicit-typing.md)\n- Dynamic component refs trigger reactive component warnings → See [ts-shallowref-for-dynamic-components](reference\u002Fts-shallowref-for-dynamic-components.md)\n- Union-typed template expressions fail type checks without narrowing → See [ts-template-type-casting](reference\u002Fts-template-type-casting.md)\n\n### Async Components\n- Route components misconfigured with defineAsyncComponent lazy loading → See [async-component-vue-router](reference\u002Fasync-component-vue-router.md)\n- Network failures or timeouts loading components → See [async-component-error-handling](reference\u002Fasync-component-error-handling.md)\n- Template refs undefined after component reactivation → See [async-component-keepalive-ref-issue](reference\u002Fasync-component-keepalive-ref-issue.md)\n\n### Render Functions\n- Render function output stays static after state changes → See [rendering-render-function-return-from-setup](reference\u002Frendering-render-function-return-from-setup.md)\n- Reused vnode instances render incorrectly → See [render-function-vnodes-must-be-unique](reference\u002Frender-function-vnodes-must-be-unique.md)\n- String component names render as HTML elements → See [rendering-resolve-component-for-string-names](reference\u002Frendering-resolve-component-for-string-names.md)\n- Accessing vnode internals breaks on Vue updates → See [render-function-avoid-internal-vnode-properties](reference\u002Frender-function-avoid-internal-vnode-properties.md)\n- Vue 2 render function patterns crash in Vue 3 → See [rendering-render-function-h-import-vue3](reference\u002Frendering-render-function-h-import-vue3.md)\n- Slot content not rendering from h() → See [rendering-render-function-slots-as-functions](reference\u002Frendering-render-function-slots-as-functions.md)\n\n### KeepAlive\n- Child components mount twice with nested Vue Router routes → See [keepalive-router-nested-double-mount](reference\u002Fkeepalive-router-nested-double-mount.md)\n- Memory grows when combining KeepAlive with Transition animations → See [keepalive-transition-memory-leak](reference\u002Fkeepalive-transition-memory-leak.md)\n\n### Transitions\n- JavaScript transition hooks hang without done callback → See [transition-js-hooks-done-callback](reference\u002Ftransition-js-hooks-done-callback.md)\n- Move animations fail on inline list elements → See [transition-group-flip-inline-elements](reference\u002Ftransition-group-flip-inline-elements.md)\n- List items jump instead of smoothly animating → See [transition-group-move-animation-position-absolute](reference\u002Ftransition-group-move-animation-position-absolute.md)\n- Vue 2 to Vue 3 TransitionGroup wrapper changes break layout → See [transition-group-no-default-wrapper-vue3](reference\u002Ftransition-group-no-default-wrapper-vue3.md)\n- Nested transitions cut off before finishing → See [transition-nested-duration](reference\u002Ftransition-nested-duration.md)\n- Scoped styles stop working in reusable transition wrappers → See [transition-reusable-scoped-style](reference\u002Ftransition-reusable-scoped-style.md)\n- RouterView transitions animate unexpectedly on first render → See [transition-router-view-appear](reference\u002Ftransition-router-view-appear.md)\n- Mixing CSS transitions and animations causes timing issues → See [transition-type-when-mixed](reference\u002Ftransition-type-when-mixed.md)\n- Cleanup hooks missed during rapid transition swaps → See [transition-unmount-hook-timing](reference\u002Ftransition-unmount-hook-timing.md)\n\n### Teleport\n- Teleport target element not found in DOM → See [teleport-target-must-exist](reference\u002Fteleport-target-must-exist.md)\n- Teleported content breaks SSR hydration → See [teleport-ssr-hydration](reference\u002Fteleport-ssr-hydration.md)\n- Scoped styles not applying to teleported content → See [teleport-scoped-styles-limitation](reference\u002Fteleport-scoped-styles-limitation.md)\n\n### Suspense\n- Need to handle async errors from Suspense components → See [suspense-no-builtin-error-handling](reference\u002Fsuspense-no-builtin-error-handling.md)\n- Using Suspense with server-side rendering → See [suspense-ssr-hydration-issues](reference\u002Fsuspense-ssr-hydration-issues.md)\n- Async component loading\u002Ferror UI ignored under Suspense → See [async-component-suspense-control](reference\u002Fasync-component-suspense-control.md)\n\n### SSR\n- HTML differs between server and client renders → See [ssr-hydration-mismatch-causes](reference\u002Fssr-hydration-mismatch-causes.md)\n- User state leaks between requests from shared singleton stores → See [state-ssr-cross-request-pollution](reference\u002Fstate-ssr-cross-request-pollution.md)\n- Browser-only APIs crash server rendering in universal code paths → See [ssr-platform-specific-apis](reference\u002Fssr-platform-specific-apis.md)\n\n### Performance\n- List children re-render unnecessarily because parent passes unstable props → See [perf-props-stability-update-optimization](reference\u002Fperf-props-stability-update-optimization.md)\n- Computed objects retrigger effects despite equivalent values → See [perf-computed-object-stability](reference\u002Fperf-computed-object-stability.md)\n\n### SFC (Single File Components)\n- Trying to use named exports from component script blocks → See [sfc-named-exports-forbidden](reference\u002Fsfc-named-exports-forbidden.md)\n- Variables not updating in template after changes → See [sfc-script-setup-reactivity](reference\u002Fsfc-script-setup-reactivity.md)\n- Scoped styles not applying to child component elements → See [sfc-scoped-css-child-component-styling](reference\u002Fsfc-scoped-css-child-component-styling.md)\n- Scoped styles not applying to dynamic v-html content → See [sfc-scoped-css-dynamic-content](reference\u002Fsfc-scoped-css-dynamic-content.md)\n- Scoped styles not applying to slot content → See [sfc-scoped-css-slot-content](reference\u002Fsfc-scoped-css-slot-content.md)\n- Tailwind classes missing when built dynamically → See [tailwind-dynamic-class-generation](reference\u002Ftailwind-dynamic-class-generation.md)\n- Recursive components not rendering due to name conflicts → See [self-referencing-component-name](reference\u002Fself-referencing-component-name.md)\n\n### Plugins\n- Debugging why global properties cause naming conflicts → See [plugin-global-properties-sparingly](reference\u002Fplugin-global-properties-sparingly.md)\n- Plugin not working or inject returns undefined → See [plugin-install-before-mount](reference\u002Fplugin-install-before-mount.md)\n- Plugin global properties are unavailable in setup-based components → See [plugin-prefer-provide-inject-over-global-properties](reference\u002Fplugin-prefer-provide-inject-over-global-properties.md)\n- Plugin type augmentation mistakes break ComponentCustomProperties typing → See [plugin-typescript-type-augmentation](reference\u002Fplugin-typescript-type-augmentation.md)\n\n### App Configuration\n- App configuration methods not working after mount call → See [configure-app-before-mount](reference\u002Fconfigure-app-before-mount.md)\n- Chaining app config off mount() fails because mount returns component instance → See [mount-return-value](reference\u002Fmount-return-value.md)\n- require.context-based component auto-registration fails in Vite → See [dynamic-component-registration-vite](reference\u002Fdynamic-component-registration-vite.md)\n","Vue 3 debugging and error handling for runtime issues, warnings, async failures, and hydration bugs.\nFor development best practices and common gotchas, use `vue-best-practices`.\n\n### Reactivity\n- Tracing unexpected re-renders and state updates → See [reactivity-debugging-hooks](reference\u002Freactivity-debugging-hooks.md)\n- Ref values not updating due to missing .value access → See [ref-value-access](reference\u002Fref-value-access.md)\n- State stops updating after destructuring reactive objects → See [reactive-destructuring](reference\u002Freactive-destructuring.md)\n- Refs inside arrays, Maps, or Sets not unwrapping → See [refs-in-collections-need-value](reference\u002Frefs-in-collections-need-value.md)\n- Nested refs rendering as [object Object] in templates → See [template-ref-unwrapping-top-level](reference\u002Ftemplate-ref-unwrapping-top-level.md)\n- Reactive proxy identity comparisons always return false → See [reactivity-proxy-identity-hazard](reference\u002Freactivity-proxy-identity-hazard.md)\n- Third-party instances breaking when proxied → See [reactivity-markraw-for-non-reactive](reference\u002Freactivity-markraw-for-non-reactive.md)\n- Watchers only firing once per tick unexpectedly → See [reactivity-same-tick-batching](reference\u002Freactivity-same-tick-batching.md)\n\n### Computed\n- Computed getter triggers mutations or requests unexpectedly → See [computed-no-side-effects](reference\u002Fcomputed-no-side-effects.md)\n- Mutating computed values causes changes to disappear → See [computed-return-value-readonly](reference\u002Fcomputed-return-value-readonly.md)\n- Computed value never updates after conditional logic → See [computed-conditional-dependencies](reference\u002Fcomputed-conditional-dependencies.md)\n- Sorting or reversing arrays breaks original state → See [computed-array-mutation](reference\u002Fcomputed-array-mutation.md)\n- Passing parameters to computed properties fails → See [computed-no-parameters](reference\u002Fcomputed-no-parameters.md)\n\n### Watchers\n- Async operations overwriting with stale data → See [watch-async-cleanup](reference\u002Fwatch-async-cleanup.md)\n- Creating watchers inside async callbacks → See [watch-async-creation-memory-leak](reference\u002Fwatch-async-creation-memory-leak.md)\n- Watcher never triggers for reactive object properties → See [watch-reactive-property-getter](reference\u002Fwatch-reactive-property-getter.md)\n- Async watchEffect misses dependencies after await → See [watcheffect-async-dependency-tracking](reference\u002Fwatcheffect-async-dependency-tracking.md)\n- DOM reads are stale inside watcher callbacks → See [watch-flush-timing](reference\u002Fwatch-flush-timing.md)\n- Deep watchers report identical old\u002Fnew values → See [watch-deep-same-object-reference](reference\u002Fwatch-deep-same-object-reference.md)\n- watchEffect runs before template refs update → See [watcheffect-flush-post-for-refs](reference\u002Fwatcheffect-flush-post-for-refs.md)\n\n### Components\n- Child component throws \"component not found\" error → See [local-components-not-in-descendants](reference\u002Flocal-components-not-in-descendants.md)\n- Click listener doesn't fire on custom component → See [click-events-on-components](reference\u002Fclick-events-on-components.md)\n- Parent can't access child ref data in script setup → See [component-ref-requires-defineexpose](reference\u002Fcomponent-ref-requires-defineexpose.md)\n- HTML template parsing breaks Vue component syntax → See [in-dom-template-parsing-caveats](reference\u002Fin-dom-template-parsing-caveats.md)\n- Wrong component renders due to naming collisions → See [component-naming-conflicts](reference\u002Fcomponent-naming-conflicts.md)\n- Parent styles don't apply to multi-root component → See [multi-root-component-class-attrs](reference\u002Fmulti-root-component-class-attrs.md)\n\n### Props & Emits\n- Variables referenced in defineProps cause errors → See [prop-defineprops-scope-limitation](reference\u002Fprop-defineprops-scope-limitation.md)\n- Component emits undeclared event causing warnings → See [declare-emits-for-documentation](reference\u002Fdeclare-emits-for-documentation.md)\n- defineEmits used inside function or conditional → See [defineEmits-must-be-top-level](reference\u002FdefineEmits-must-be-top-level.md)\n- defineEmits has both type and runtime arguments → See [defineEmits-no-runtime-and-type-mixed](reference\u002FdefineEmits-no-runtime-and-type-mixed.md)\n- Native event listeners not responding to clicks → See [native-event-collision-with-emits](reference\u002Fnative-event-collision-with-emits.md)\n- Component event fires twice when clicking → See [undeclared-emits-double-firing](reference\u002Fundeclared-emits-double-firing.md)\n\n### Templates\n- Getting template compilation errors with statements → See [template-expressions-restrictions](reference\u002Ftemplate-expressions-restrictions.md)\n- \"Cannot read property of undefined\" runtime errors → See [v-if-null-check-order](reference\u002Fv-if-null-check-order.md)\n- Dynamic directive arguments not working properly → See [dynamic-argument-constraints](reference\u002Fdynamic-argument-constraints.md)\n- v-else elements rendering unconditionally always → See [v-else-must-follow-v-if](reference\u002Fv-else-must-follow-v-if.md)\n- Mixing v-if with v-for causes precedence bugs and migration breakage → See [no-v-if-with-v-for](reference\u002Fno-v-if-with-v-for.md)\n- Template function calls mutating state cause unpredictable re-render bugs → See [template-functions-no-side-effects](reference\u002Ftemplate-functions-no-side-effects.md)\n- Child components in loops showing undefined data → See [v-for-component-props](reference\u002Fv-for-component-props.md)\n- Array order changing after sorting or reversing → See [v-for-computed-reverse-sort](reference\u002Fv-for-computed-reverse-sort.md)\n- List items disappearing or swapping state unexpectedly → See [v-for-key-attribute](reference\u002Fv-for-key-attribute.md)\n- Getting off-by-one errors with range iteration → See [v-for-range-starts-at-one](reference\u002Fv-for-range-starts-at-one.md)\n- v-show or v-else not working on template elements → See [v-show-template-limitation](reference\u002Fv-show-template-limitation.md)\n\n### Template Refs\n- Ref becomes null when element is conditionally hidden → See [template-ref-null-with-v-if](reference\u002Ftemplate-ref-null-with-v-if.md)\n- Ref array indices don't match data array in loops → See [template-ref-v-for-order](reference\u002Ftemplate-ref-v-for-order.md)\n- Refactoring template ref names breaks silently in code → See [use-template-ref-vue35](reference\u002Fuse-template-ref-vue35.md)\n\n### Forms & v-model\n- Initial form values not showing when using v-model → See [v-model-ignores-html-attributes](reference\u002Fv-model-ignores-html-attributes.md)\n- Textarea content changes not updating the ref → See [textarea-no-interpolation](reference\u002Ftextarea-no-interpolation.md)\n- iOS users cannot select dropdown first option → See [select-initial-value-ios-bug](reference\u002Fselect-initial-value-ios-bug.md)\n- Parent and child components have different values → See [define-model-default-value-sync](reference\u002Fdefine-model-default-value-sync.md)\n- Object property changes not syncing to parent → See [definemodel-object-mutation-no-emit](reference\u002Fdefinemodel-object-mutation-no-emit.md)\n- Real-time search\u002Fvalidation broken for Chinese\u002FJapanese input → See [v-model-ime-composition](reference\u002Fv-model-ime-composition.md)\n- Number input returns empty string instead of zero → See [v-model-number-modifier-behavior](reference\u002Fv-model-number-modifier-behavior.md)\n- Custom checkbox values not submitted in forms → See [checkbox-true-false-value-form-submission](reference\u002Fcheckbox-true-false-value-form-submission.md)\n\n### Events & Modifiers\n- Chaining multiple event modifiers produces unexpected results → See [event-modifier-order-matters](reference\u002Fevent-modifier-order-matters.md)\n- Keyboard shortcuts don't fire with system modifier keys → See [keyup-modifier-timing](reference\u002Fkeyup-modifier-timing.md)\n- Keyboard shortcuts fire with unintended modifier combinations → See [exact-modifier-for-precise-shortcuts](reference\u002Fexact-modifier-for-precise-shortcuts.md)\n- Combining passive and prevent modifiers breaks event behavior → See [no-passive-with-prevent](reference\u002Fno-passive-with-prevent.md)\n\n### Lifecycle\n- Memory leaks from unremoved event listeners → See [cleanup-side-effects](reference\u002Fcleanup-side-effects.md)\n- DOM access fails before component mounts → See [lifecycle-dom-access-timing](reference\u002Flifecycle-dom-access-timing.md)\n- DOM reads return stale values after state changes → See [dom-update-timing-nexttick](reference\u002Fdom-update-timing-nexttick.md)\n- SSR rendering differs from client hydration → See [lifecycle-ssr-awareness](reference\u002Flifecycle-ssr-awareness.md)\n- Lifecycle hooks registered asynchronously never run → See [lifecycle-hooks-synchronous-registration](reference\u002Flifecycle-hooks-synchronous-registration.md)\n\n### Slots\n- Accessing child component data in slot content returns undefined values → See [slot-render-scope-parent-only](reference\u002Fslot-render-scope-parent-only.md)\n- Mixing named and scoped slots together causes compilation errors → See [slot-named-scoped-explicit-default](reference\u002Fslot-named-scoped-explicit-default.md)\n- Using v-slot on native HTML elements causes compilation errors → See [slot-v-slot-on-components-or-templates-only](reference\u002Fslot-v-slot-on-components-or-templates-only.md)\n- Unexpected content placement from implicit default slot behavior → See [slot-implicit-default-content](reference\u002Fslot-implicit-default-content.md)\n- Scoped slot props missing expected name property → See [slot-name-reserved-prop](reference\u002Fslot-name-reserved-prop.md)\n- Wrapper components breaking child slot functionality → See [slot-forwarding-to-child-components](reference\u002Fslot-forwarding-to-child-components.md)\n\n### Provide\u002FInject\n- Calling provide after async operations fails silently → See [provide-inject-synchronous-setup](reference\u002Fprovide-inject-synchronous-setup.md)\n- Tracing where provided values come from → See [provide-inject-debugging-challenges](reference\u002Fprovide-inject-debugging-challenges.md)\n- Injected values not updating when provider changes → See [provide-inject-reactivity-not-automatic](reference\u002Fprovide-inject-reactivity-not-automatic.md)\n- Multiple components share same default object → See [provide-inject-default-value-factory](reference\u002Fprovide-inject-default-value-factory.md)\n\n### Attrs\n- Both internal and fallthrough event handlers execute → See [attrs-event-listener-merging](reference\u002Fattrs-event-listener-merging.md)\n- Explicit attributes overwritten by fallthrough values → See [fallthrough-attrs-overwrite-vue3](reference\u002Ffallthrough-attrs-overwrite-vue3.md)\n- Attributes applying to wrong element in wrappers → See [inheritattrs-false-for-wrapper-components](reference\u002Finheritattrs-false-for-wrapper-components.md)\n\n### Composables\n- Composable called outside setup context or asynchronously → See [composable-call-location-restrictions](reference\u002Fcomposable-call-location-restrictions.md)\n- Composable reactive dependency not updating when input changes → See [composable-tovalue-inside-watcheffect](reference\u002Fcomposable-tovalue-inside-watcheffect.md)\n- Composable mutates external state unexpectedly → See [composable-avoid-hidden-side-effects](reference\u002Fcomposable-avoid-hidden-side-effects.md)\n- Destructuring composable returns breaks reactivity unexpectedly → See [composable-naming-return-pattern](reference\u002Fcomposable-naming-return-pattern.md)\n\n### Composition API\n- Lifecycle hooks failing silently after async operations → See [composition-api-script-setup-async-context](reference\u002Fcomposition-api-script-setup-async-context.md)\n- Parent component refs unable to access exposed properties → See [define-expose-before-await](reference\u002Fdefine-expose-before-await.md)\n- Functional-programming patterns break expected Vue reactivity behavior → See [composition-api-not-functional-programming](reference\u002Fcomposition-api-not-functional-programming.md)\n- React Hook mental model causes incorrect Composition API usage → See [composition-api-vs-react-hooks-differences](reference\u002Fcomposition-api-vs-react-hooks-differences.md)\n\n### Animation\n- Animations fail to trigger when DOM nodes are reused → See [animation-key-for-rerender](reference\u002Fanimation-key-for-rerender.md)\n- TransitionGroup list updates feel laggy under load → See [animation-transitiongroup-performance](reference\u002Fanimation-transitiongroup-performance.md)\n\n### TypeScript\n- Mutable prop defaults leak state between component instances → See [ts-withdefaults-mutable-factory-function](reference\u002Fts-withdefaults-mutable-factory-function.md)\n- reactive() generic typing causes ref unwrapping mismatches → See [ts-reactive-no-generic-argument](reference\u002Fts-reactive-no-generic-argument.md)\n- Template refs throw null access errors before mount or after v-if unmount → See [ts-template-ref-null-handling](reference\u002Fts-template-ref-null-handling.md)\n- Optional boolean props behave as false instead of undefined → See [ts-defineprops-boolean-default-false](reference\u002Fts-defineprops-boolean-default-false.md)\n- Imported defineProps types fail with unresolvable or complex type references → See [ts-defineprops-imported-types-limitations](reference\u002Fts-defineprops-imported-types-limitations.md)\n- Untyped DOM event handlers fail under strict TypeScript settings → See [ts-event-handler-explicit-typing](reference\u002Fts-event-handler-explicit-typing.md)\n- Dynamic component refs trigger reactive component warnings → See [ts-shallowref-for-dynamic-components](reference\u002Fts-shallowref-for-dynamic-components.md)\n- Union-typed template expressions fail type checks without narrowing → See [ts-template-type-casting](reference\u002Fts-template-type-casting.md)\n\n### Async Components\n- Route components misconfigured with defineAsyncComponent lazy loading → See [async-component-vue-router](reference\u002Fasync-component-vue-router.md)\n- Network failures or timeouts loading components → See [async-component-error-handling](reference\u002Fasync-component-error-handling.md)\n- Template refs undefined after component reactivation → See [async-component-keepalive-ref-issue](reference\u002Fasync-component-keepalive-ref-issue.md)\n\n### Render Functions\n- Render function output stays static after state changes → See [rendering-render-function-return-from-setup](reference\u002Frendering-render-function-return-from-setup.md)\n- Reused vnode instances render incorrectly → See [render-function-vnodes-must-be-unique](reference\u002Frender-function-vnodes-must-be-unique.md)\n- String component names render as HTML elements → See [rendering-resolve-component-for-string-names](reference\u002Frendering-resolve-component-for-string-names.md)\n- Accessing vnode internals breaks on Vue updates → See [render-function-avoid-internal-vnode-properties](reference\u002Frender-function-avoid-internal-vnode-properties.md)\n- Vue 2 render function patterns crash in Vue 3 → See [rendering-render-function-h-import-vue3](reference\u002Frendering-render-function-h-import-vue3.md)\n- Slot content not rendering from h() → See [rendering-render-function-slots-as-functions](reference\u002Frendering-render-function-slots-as-functions.md)\n\n### KeepAlive\n- Child components mount twice with nested Vue Router routes → See [keepalive-router-nested-double-mount](reference\u002Fkeepalive-router-nested-double-mount.md)\n- Memory grows when combining KeepAlive with Transition animations → See [keepalive-transition-memory-leak](reference\u002Fkeepalive-transition-memory-leak.md)\n\n### Transitions\n- JavaScript transition hooks hang without done callback → See [transition-js-hooks-done-callback](reference\u002Ftransition-js-hooks-done-callback.md)\n- Move animations fail on inline list elements → See [transition-group-flip-inline-elements](reference\u002Ftransition-group-flip-inline-elements.md)\n- List items jump instead of smoothly animating → See [transition-group-move-animation-position-absolute](reference\u002Ftransition-group-move-animation-position-absolute.md)\n- Vue 2 to Vue 3 TransitionGroup wrapper changes break layout → See [transition-group-no-default-wrapper-vue3](reference\u002Ftransition-group-no-default-wrapper-vue3.md)\n- Nested transitions cut off before finishing → See [transition-nested-duration](reference\u002Ftransition-nested-duration.md)\n- Scoped styles stop working in reusable transition wrappers → See [transition-reusable-scoped-style](reference\u002Ftransition-reusable-scoped-style.md)\n- RouterView transitions animate unexpectedly on first render → See [transition-router-view-appear](reference\u002Ftransition-router-view-appear.md)\n- Mixing CSS transitions and animations causes timing issues → See [transition-type-when-mixed](reference\u002Ftransition-type-when-mixed.md)\n- Cleanup hooks missed during rapid transition swaps → See [transition-unmount-hook-timing](reference\u002Ftransition-unmount-hook-timing.md)\n\n### Teleport\n- Teleport target element not found in DOM → See [teleport-target-must-exist](reference\u002Fteleport-target-must-exist.md)\n- Teleported content breaks SSR hydration → See [teleport-ssr-hydration](reference\u002Fteleport-ssr-hydration.md)\n- Scoped styles not applying to teleported content → See [teleport-scoped-styles-limitation](reference\u002Fteleport-scoped-styles-limitation.md)\n\n### Suspense\n- Need to handle async errors from Suspense components → See [suspense-no-builtin-error-handling](reference\u002Fsuspense-no-builtin-error-handling.md)\n- Using Suspense with server-side rendering → See [suspense-ssr-hydration-issues](reference\u002Fsuspense-ssr-hydration-issues.md)\n- Async component loading\u002Ferror UI ignored under Suspense → See [async-component-suspense-control](reference\u002Fasync-component-suspense-control.md)\n\n### SSR\n- HTML differs between server and client renders → See [ssr-hydration-mismatch-causes](reference\u002Fssr-hydration-mismatch-causes.md)\n- User state leaks between requests from shared singleton stores → See [state-ssr-cross-request-pollution](reference\u002Fstate-ssr-cross-request-pollution.md)\n- Browser-only APIs crash server rendering in universal code paths → See [ssr-platform-specific-apis](reference\u002Fssr-platform-specific-apis.md)\n\n### Performance\n- List children re-render unnecessarily because parent passes unstable props → See [perf-props-stability-update-optimization](reference\u002Fperf-props-stability-update-optimization.md)\n- Computed objects retrigger effects despite equivalent values → See [perf-computed-object-stability](reference\u002Fperf-computed-object-stability.md)\n\n### SFC (Single File Components)\n- Trying to use named exports from component script blocks → See [sfc-named-exports-forbidden](reference\u002Fsfc-named-exports-forbidden.md)\n- Variables not updating in template after changes → See [sfc-script-setup-reactivity](reference\u002Fsfc-script-setup-reactivity.md)\n- Scoped styles not applying to child component elements → See [sfc-scoped-css-child-component-styling](reference\u002Fsfc-scoped-css-child-component-styling.md)\n- Scoped styles not applying to dynamic v-html content → See [sfc-scoped-css-dynamic-content](reference\u002Fsfc-scoped-css-dynamic-content.md)\n- Scoped styles not applying to slot content → See [sfc-scoped-css-slot-content](reference\u002Fsfc-scoped-css-slot-content.md)\n- Tailwind classes missing when built dynamically → See [tailwind-dynamic-class-generation](reference\u002Ftailwind-dynamic-class-generation.md)\n- Recursive components not rendering due to name conflicts → See [self-referencing-component-name](reference\u002Fself-referencing-component-name.md)\n\n### Plugins\n- Debugging why global properties cause naming conflicts → See [plugin-global-properties-sparingly](reference\u002Fplugin-global-properties-sparingly.md)\n- Plugin not working or inject returns undefined → See [plugin-install-before-mount](reference\u002Fplugin-install-before-mount.md)\n- Plugin global properties are unavailable in setup-based components → See [plugin-prefer-provide-inject-over-global-properties](reference\u002Fplugin-prefer-provide-inject-over-global-properties.md)\n- Plugin type augmentation mistakes break ComponentCustomProperties typing → See [plugin-typescript-type-augmentation](reference\u002Fplugin-typescript-type-augmentation.md)\n\n### App Configuration\n- App configuration methods not working after mount call → See [configure-app-before-mount](reference\u002Fconfigure-app-before-mount.md)\n- Chaining app config off mount() fails because mount returns component instance → See [mount-return-value](reference\u002Fmount-return-value.md)\n- require.context-based component auto-registration fails in Vite → See [dynamic-component-registration-vite](reference\u002Fdynamic-component-registration-vite.md)\n",{"name":5,"license":15,"metadata":44,"description":7},{"author":45,"version":46},"github.com\u002Fvuejs-ai","19.0.1","main","c349be0704bffe54a7191d1412faf564b08983ca","skills\u002Fvuejs-ai\u002Fvue-debug-guides",0,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills","https:\u002F\u002Fgithub.com\u002Frockcookies","2026-11-12 14:42:52",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add rockcookies\u002Fskills --skill vue-debug-guides",{"tool":60,"command":61},"bunx","bunx skills add rockcookies\u002Fskills --skill vue-debug-guides",{"tool":63,"command":64},"pnpm","pnpm dlx skills add rockcookies\u002Fskills --skill vue-debug-guides","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002FSKILL.md",true,[68,74,78,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,352,356,360,364,368,372,376,380,384,388,392,396,400,404,408,412,416,420,424,428,432,436,440,444,448,452,456,460,464,468,472,476,480,484,488,492,496,500,504,508,512,516,520,524,528,532,536,540,544,548,552,556,560,564,568,572,576,580,584,588,592,596,600,604,608,612,616,620,624,628,632,636,640,644,648,652,656,660,664],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"assets\u002Fpr-release.yaml.template","ASSET","资产文件",1651,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Fassets\u002Fpr-release.yaml.template",{"path":75,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":76,"sourceHtmlUrl":77},"assets\u002Frelease.yml.template",4690,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Fassets\u002Frelease.yml.template",{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"reference\u002Fanimation-key-for-rerender.md","REFERENCE","参考文档",4601,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fanimation-key-for-rerender.md",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"reference\u002Fanimation-transitiongroup-performance.md",5854,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fanimation-transitiongroup-performance.md",{"path":89,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":90,"sourceHtmlUrl":91},"reference\u002Fasync-component-error-handling.md",3291,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fasync-component-error-handling.md",{"path":93,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":94,"sourceHtmlUrl":95},"reference\u002Fasync-component-keepalive-ref-issue.md",2894,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fasync-component-keepalive-ref-issue.md",{"path":97,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":98,"sourceHtmlUrl":99},"reference\u002Fasync-component-suspense-control.md",2167,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fasync-component-suspense-control.md",{"path":101,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":102,"sourceHtmlUrl":103},"reference\u002Fasync-component-vue-router.md",2893,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fasync-component-vue-router.md",{"path":105,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":106,"sourceHtmlUrl":107},"reference\u002Fattrs-event-listener-merging.md",4707,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fattrs-event-listener-merging.md",{"path":109,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":110,"sourceHtmlUrl":111},"reference\u002Fcheckbox-true-false-value-form-submission.md",3505,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcheckbox-true-false-value-form-submission.md",{"path":113,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":114,"sourceHtmlUrl":115},"reference\u002Fcleanup-side-effects.md",4343,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcleanup-side-effects.md",{"path":117,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":118,"sourceHtmlUrl":119},"reference\u002Fclick-events-on-components.md",4730,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fclick-events-on-components.md",{"path":121,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":122,"sourceHtmlUrl":123},"reference\u002Fcomponent-naming-conflicts.md",4461,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomponent-naming-conflicts.md",{"path":125,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":126,"sourceHtmlUrl":127},"reference\u002Fcomponent-ref-requires-defineexpose.md",4204,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomponent-ref-requires-defineexpose.md",{"path":129,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":130,"sourceHtmlUrl":131},"reference\u002Fcomposable-avoid-hidden-side-effects.md",5867,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomposable-avoid-hidden-side-effects.md",{"path":133,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":134,"sourceHtmlUrl":135},"reference\u002Fcomposable-call-location-restrictions.md",4903,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomposable-call-location-restrictions.md",{"path":137,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":138,"sourceHtmlUrl":139},"reference\u002Fcomposable-naming-return-pattern.md",3994,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomposable-naming-return-pattern.md",{"path":141,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":142,"sourceHtmlUrl":143},"reference\u002Fcomposable-tovalue-inside-watcheffect.md",5216,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomposable-tovalue-inside-watcheffect.md",{"path":145,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":146,"sourceHtmlUrl":147},"reference\u002Fcomposition-api-not-functional-programming.md",3896,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomposition-api-not-functional-programming.md",{"path":149,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":150,"sourceHtmlUrl":151},"reference\u002Fcomposition-api-script-setup-async-context.md",5360,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomposition-api-script-setup-async-context.md",{"path":153,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":154,"sourceHtmlUrl":155},"reference\u002Fcomposition-api-vs-react-hooks-differences.md",4909,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomposition-api-vs-react-hooks-differences.md",{"path":157,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":158,"sourceHtmlUrl":159},"reference\u002Fcomputed-array-mutation.md",4372,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomputed-array-mutation.md",{"path":161,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":162,"sourceHtmlUrl":163},"reference\u002Fcomputed-conditional-dependencies.md",4379,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomputed-conditional-dependencies.md",{"path":165,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":166,"sourceHtmlUrl":167},"reference\u002Fcomputed-no-parameters.md",4490,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomputed-no-parameters.md",{"path":169,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":170,"sourceHtmlUrl":171},"reference\u002Fcomputed-no-side-effects.md",3289,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomputed-no-side-effects.md",{"path":173,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":174,"sourceHtmlUrl":175},"reference\u002Fcomputed-return-value-readonly.md",4096,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fcomputed-return-value-readonly.md",{"path":177,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":178,"sourceHtmlUrl":179},"reference\u002Fconfigure-app-before-mount.md",2776,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fconfigure-app-before-mount.md",{"path":181,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":182,"sourceHtmlUrl":183},"reference\u002Fdeclare-emits-for-documentation.md",5121,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fdeclare-emits-for-documentation.md",{"path":185,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":186,"sourceHtmlUrl":187},"reference\u002Fdefine-expose-before-await.md",4288,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fdefine-expose-before-await.md",{"path":189,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":190,"sourceHtmlUrl":191},"reference\u002Fdefine-model-default-value-sync.md",4046,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fdefine-model-default-value-sync.md",{"path":193,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":194,"sourceHtmlUrl":195},"reference\u002FdefineEmits-must-be-top-level.md",4156,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002FdefineEmits-must-be-top-level.md",{"path":197,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":198,"sourceHtmlUrl":199},"reference\u002FdefineEmits-no-runtime-and-type-mixed.md",4342,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002FdefineEmits-no-runtime-and-type-mixed.md",{"path":201,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":202,"sourceHtmlUrl":203},"reference\u002Fdefinemodel-object-mutation-no-emit.md",4103,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fdefinemodel-object-mutation-no-emit.md",{"path":205,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":206,"sourceHtmlUrl":207},"reference\u002Fdom-update-timing-nexttick.md",2791,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fdom-update-timing-nexttick.md",{"path":209,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":210,"sourceHtmlUrl":211},"reference\u002Fdynamic-argument-constraints.md",4333,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fdynamic-argument-constraints.md",{"path":213,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":214,"sourceHtmlUrl":215},"reference\u002Fdynamic-component-registration-vite.md",4256,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fdynamic-component-registration-vite.md",{"path":217,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":218,"sourceHtmlUrl":219},"reference\u002Fevent-modifier-order-matters.md",2815,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fevent-modifier-order-matters.md",{"path":221,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":222,"sourceHtmlUrl":223},"reference\u002Fexact-modifier-for-precise-shortcuts.md",4368,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fexact-modifier-for-precise-shortcuts.md",{"path":225,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":226,"sourceHtmlUrl":227},"reference\u002Ffallthrough-attrs-overwrite-vue3.md",3912,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ffallthrough-attrs-overwrite-vue3.md",{"path":229,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":230,"sourceHtmlUrl":231},"reference\u002Fin-dom-template-parsing-caveats.md",4530,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fin-dom-template-parsing-caveats.md",{"path":233,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":234,"sourceHtmlUrl":235},"reference\u002Finheritattrs-false-for-wrapper-components.md",4515,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Finheritattrs-false-for-wrapper-components.md",{"path":237,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":238,"sourceHtmlUrl":239},"reference\u002Fkeepalive-router-nested-double-mount.md",5111,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fkeepalive-router-nested-double-mount.md",{"path":241,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":242,"sourceHtmlUrl":243},"reference\u002Fkeepalive-transition-memory-leak.md",3574,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fkeepalive-transition-memory-leak.md",{"path":245,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":246,"sourceHtmlUrl":247},"reference\u002Fkeyup-modifier-timing.md",4297,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fkeyup-modifier-timing.md",{"path":249,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":250,"sourceHtmlUrl":251},"reference\u002Flifecycle-dom-access-timing.md",5186,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Flifecycle-dom-access-timing.md",{"path":253,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":254,"sourceHtmlUrl":255},"reference\u002Flifecycle-hooks-synchronous-registration.md",3919,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Flifecycle-hooks-synchronous-registration.md",{"path":257,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":258,"sourceHtmlUrl":259},"reference\u002Flifecycle-ssr-awareness.md",5114,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Flifecycle-ssr-awareness.md",{"path":261,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":262,"sourceHtmlUrl":263},"reference\u002Flocal-components-not-in-descendants.md",3772,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Flocal-components-not-in-descendants.md",{"path":265,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":266,"sourceHtmlUrl":267},"reference\u002Fmount-return-value.md",2691,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fmount-return-value.md",{"path":269,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":270,"sourceHtmlUrl":271},"reference\u002Fmulti-root-component-class-attrs.md",2437,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fmulti-root-component-class-attrs.md",{"path":273,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":274,"sourceHtmlUrl":275},"reference\u002Fnative-event-collision-with-emits.md",4556,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fnative-event-collision-with-emits.md",{"path":277,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":278,"sourceHtmlUrl":279},"reference\u002Fno-passive-with-prevent.md",3807,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fno-passive-with-prevent.md",{"path":281,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":282,"sourceHtmlUrl":283},"reference\u002Fno-v-if-with-v-for.md",3929,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fno-v-if-with-v-for.md",{"path":285,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":286,"sourceHtmlUrl":287},"reference\u002Fperf-computed-object-stability.md",4772,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fperf-computed-object-stability.md",{"path":289,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":290,"sourceHtmlUrl":291},"reference\u002Fperf-props-stability-update-optimization.md",3820,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fperf-props-stability-update-optimization.md",{"path":293,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":294,"sourceHtmlUrl":295},"reference\u002Fplugin-global-properties-sparingly.md",3471,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fplugin-global-properties-sparingly.md",{"path":297,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":298,"sourceHtmlUrl":299},"reference\u002Fplugin-install-before-mount.md",3215,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fplugin-install-before-mount.md",{"path":301,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":302,"sourceHtmlUrl":303},"reference\u002Fplugin-prefer-provide-inject-over-global-properties.md",3435,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fplugin-prefer-provide-inject-over-global-properties.md",{"path":305,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":306,"sourceHtmlUrl":307},"reference\u002Fplugin-typescript-type-augmentation.md",4179,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fplugin-typescript-type-augmentation.md",{"path":309,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":310,"sourceHtmlUrl":311},"reference\u002Fprop-defineprops-scope-limitation.md",3717,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fprop-defineprops-scope-limitation.md",{"path":313,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":314,"sourceHtmlUrl":315},"reference\u002Fprovide-inject-debugging-challenges.md",5651,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fprovide-inject-debugging-challenges.md",{"path":317,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":318,"sourceHtmlUrl":319},"reference\u002Fprovide-inject-default-value-factory.md",5690,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fprovide-inject-default-value-factory.md",{"path":321,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":322,"sourceHtmlUrl":323},"reference\u002Fprovide-inject-reactivity-not-automatic.md",5133,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fprovide-inject-reactivity-not-automatic.md",{"path":325,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":326,"sourceHtmlUrl":327},"reference\u002Fprovide-inject-synchronous-setup.md",5171,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fprovide-inject-synchronous-setup.md",{"path":329,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":330,"sourceHtmlUrl":331},"reference\u002Freactive-destructuring.md",2672,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Freactive-destructuring.md",{"path":333,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":334,"sourceHtmlUrl":335},"reference\u002Freactivity-debugging-hooks.md",4323,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Freactivity-debugging-hooks.md",{"path":337,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":338,"sourceHtmlUrl":339},"reference\u002Freactivity-markraw-for-non-reactive.md",4670,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Freactivity-markraw-for-non-reactive.md",{"path":341,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":342,"sourceHtmlUrl":343},"reference\u002Freactivity-proxy-identity-hazard.md",3044,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Freactivity-proxy-identity-hazard.md",{"path":345,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":346,"sourceHtmlUrl":347},"reference\u002Freactivity-same-tick-batching.md",4529,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Freactivity-same-tick-batching.md",{"path":349,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":350,"sourceHtmlUrl":351},"reference\u002Fref-value-access.md",2099,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fref-value-access.md",{"path":353,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":354,"sourceHtmlUrl":355},"reference\u002Frefs-in-collections-need-value.md",3029,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Frefs-in-collections-need-value.md",{"path":357,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":358,"sourceHtmlUrl":359},"reference\u002Frender-function-avoid-internal-vnode-properties.md",4370,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Frender-function-avoid-internal-vnode-properties.md",{"path":361,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":362,"sourceHtmlUrl":363},"reference\u002Frender-function-vnodes-must-be-unique.md",3525,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Frender-function-vnodes-must-be-unique.md",{"path":365,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":366,"sourceHtmlUrl":367},"reference\u002Frendering-render-function-h-import-vue3.md",3348,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Frendering-render-function-h-import-vue3.md",{"path":369,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":370,"sourceHtmlUrl":371},"reference\u002Frendering-render-function-return-from-setup.md",3640,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Frendering-render-function-return-from-setup.md",{"path":373,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":374,"sourceHtmlUrl":375},"reference\u002Frendering-render-function-slots-as-functions.md",4135,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Frendering-render-function-slots-as-functions.md",{"path":377,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":378,"sourceHtmlUrl":379},"reference\u002Frendering-resolve-component-for-string-names.md",5737,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Frendering-resolve-component-for-string-names.md",{"path":381,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":382,"sourceHtmlUrl":383},"reference\u002Fselect-initial-value-ios-bug.md",3123,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fselect-initial-value-ios-bug.md",{"path":385,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":386,"sourceHtmlUrl":387},"reference\u002Fself-referencing-component-name.md",3734,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fself-referencing-component-name.md",{"path":389,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":390,"sourceHtmlUrl":391},"reference\u002Fsfc-named-exports-forbidden.md",4423,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fsfc-named-exports-forbidden.md",{"path":393,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":394,"sourceHtmlUrl":395},"reference\u002Fsfc-scoped-css-child-component-styling.md",3741,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fsfc-scoped-css-child-component-styling.md",{"path":397,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":398,"sourceHtmlUrl":399},"reference\u002Fsfc-scoped-css-dynamic-content.md",4462,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fsfc-scoped-css-dynamic-content.md",{"path":401,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":402,"sourceHtmlUrl":403},"reference\u002Fsfc-scoped-css-slot-content.md",4684,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fsfc-scoped-css-slot-content.md",{"path":405,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":406,"sourceHtmlUrl":407},"reference\u002Fsfc-script-setup-reactivity.md",5059,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fsfc-script-setup-reactivity.md",{"path":409,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":410,"sourceHtmlUrl":411},"reference\u002Fslot-forwarding-to-child-components.md",4019,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fslot-forwarding-to-child-components.md",{"path":413,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":414,"sourceHtmlUrl":415},"reference\u002Fslot-implicit-default-content.md",3468,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fslot-implicit-default-content.md",{"path":417,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":418,"sourceHtmlUrl":419},"reference\u002Fslot-name-reserved-prop.md",2781,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fslot-name-reserved-prop.md",{"path":421,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":422,"sourceHtmlUrl":423},"reference\u002Fslot-named-scoped-explicit-default.md",3007,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fslot-named-scoped-explicit-default.md",{"path":425,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":426,"sourceHtmlUrl":427},"reference\u002Fslot-render-scope-parent-only.md",3652,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fslot-render-scope-parent-only.md",{"path":429,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":430,"sourceHtmlUrl":431},"reference\u002Fslot-v-slot-on-components-or-templates-only.md",3081,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fslot-v-slot-on-components-or-templates-only.md",{"path":433,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":434,"sourceHtmlUrl":435},"reference\u002Fssr-hydration-mismatch-causes.md",6945,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fssr-hydration-mismatch-causes.md",{"path":437,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":438,"sourceHtmlUrl":439},"reference\u002Fssr-platform-specific-apis.md",6925,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fssr-platform-specific-apis.md",{"path":441,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":442,"sourceHtmlUrl":443},"reference\u002Fstate-ssr-cross-request-pollution.md",7102,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fstate-ssr-cross-request-pollution.md",{"path":445,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":446,"sourceHtmlUrl":447},"reference\u002Fsuspense-no-builtin-error-handling.md",3010,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fsuspense-no-builtin-error-handling.md",{"path":449,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":450,"sourceHtmlUrl":451},"reference\u002Fsuspense-ssr-hydration-issues.md",4301,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fsuspense-ssr-hydration-issues.md",{"path":453,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":454,"sourceHtmlUrl":455},"reference\u002Ftailwind-dynamic-class-generation.md",3157,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftailwind-dynamic-class-generation.md",{"path":457,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":458,"sourceHtmlUrl":459},"reference\u002Fteleport-scoped-styles-limitation.md",3905,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fteleport-scoped-styles-limitation.md",{"path":461,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":462,"sourceHtmlUrl":463},"reference\u002Fteleport-ssr-hydration.md",3781,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fteleport-ssr-hydration.md",{"path":465,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":466,"sourceHtmlUrl":467},"reference\u002Fteleport-target-must-exist.md",3304,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fteleport-target-must-exist.md",{"path":469,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":470,"sourceHtmlUrl":471},"reference\u002Ftemplate-expressions-restrictions.md",3443,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftemplate-expressions-restrictions.md",{"path":473,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":474,"sourceHtmlUrl":475},"reference\u002Ftemplate-functions-no-side-effects.md",5193,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftemplate-functions-no-side-effects.md",{"path":477,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":478,"sourceHtmlUrl":479},"reference\u002Ftemplate-ref-null-with-v-if.md",3023,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftemplate-ref-null-with-v-if.md",{"path":481,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":482,"sourceHtmlUrl":483},"reference\u002Ftemplate-ref-unwrapping-top-level.md",3135,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftemplate-ref-unwrapping-top-level.md",{"path":485,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":486,"sourceHtmlUrl":487},"reference\u002Ftemplate-ref-v-for-order.md",4547,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftemplate-ref-v-for-order.md",{"path":489,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":490,"sourceHtmlUrl":491},"reference\u002Ftextarea-no-interpolation.md",2298,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftextarea-no-interpolation.md",{"path":493,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":494,"sourceHtmlUrl":495},"reference\u002Ftransition-group-flip-inline-elements.md",4021,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-group-flip-inline-elements.md",{"path":497,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":498,"sourceHtmlUrl":499},"reference\u002Ftransition-group-move-animation-position-absolute.md",3747,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-group-move-animation-position-absolute.md",{"path":501,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":502,"sourceHtmlUrl":503},"reference\u002Ftransition-group-no-default-wrapper-vue3.md",4003,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-group-no-default-wrapper-vue3.md",{"path":505,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":506,"sourceHtmlUrl":507},"reference\u002Ftransition-js-hooks-done-callback.md",6164,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-js-hooks-done-callback.md",{"path":509,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":510,"sourceHtmlUrl":511},"reference\u002Ftransition-nested-duration.md",4997,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-nested-duration.md",{"path":513,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":514,"sourceHtmlUrl":515},"reference\u002Ftransition-reusable-scoped-style.md",5290,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-reusable-scoped-style.md",{"path":517,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":518,"sourceHtmlUrl":519},"reference\u002Ftransition-router-view-appear.md",4930,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-router-view-appear.md",{"path":521,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":522,"sourceHtmlUrl":523},"reference\u002Ftransition-type-when-mixed.md",4419,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-type-when-mixed.md",{"path":525,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":526,"sourceHtmlUrl":527},"reference\u002Ftransition-unmount-hook-timing.md",4309,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Ftransition-unmount-hook-timing.md",{"path":529,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":530,"sourceHtmlUrl":531},"reference\u002Fts-defineprops-boolean-default-false.md",5532,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fts-defineprops-boolean-default-false.md",{"path":533,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":534,"sourceHtmlUrl":535},"reference\u002Fts-defineprops-imported-types-limitations.md",6017,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fts-defineprops-imported-types-limitations.md",{"path":537,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":538,"sourceHtmlUrl":539},"reference\u002Fts-event-handler-explicit-typing.md",5945,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fts-event-handler-explicit-typing.md",{"path":541,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":542,"sourceHtmlUrl":543},"reference\u002Fts-reactive-no-generic-argument.md",4845,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fts-reactive-no-generic-argument.md",{"path":545,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":546,"sourceHtmlUrl":547},"reference\u002Fts-shallowref-for-dynamic-components.md",6081,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fts-shallowref-for-dynamic-components.md",{"path":549,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":550,"sourceHtmlUrl":551},"reference\u002Fts-template-ref-null-handling.md",5354,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fts-template-ref-null-handling.md",{"path":553,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":554,"sourceHtmlUrl":555},"reference\u002Fts-template-type-casting.md",5096,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fts-template-type-casting.md",{"path":557,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":558,"sourceHtmlUrl":559},"reference\u002Fts-withdefaults-mutable-factory-function.md",4641,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fts-withdefaults-mutable-factory-function.md",{"path":561,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":562,"sourceHtmlUrl":563},"reference\u002Fundeclared-emits-double-firing.md",4973,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fundeclared-emits-double-firing.md",{"path":565,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":566,"sourceHtmlUrl":567},"reference\u002Fuse-template-ref-vue35.md",4285,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fuse-template-ref-vue35.md",{"path":569,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":570,"sourceHtmlUrl":571},"reference\u002Fv-else-must-follow-v-if.md",3962,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-else-must-follow-v-if.md",{"path":573,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":574,"sourceHtmlUrl":575},"reference\u002Fv-for-component-props.md",2621,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-for-component-props.md",{"path":577,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":578,"sourceHtmlUrl":579},"reference\u002Fv-for-computed-reverse-sort.md",2843,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-for-computed-reverse-sort.md",{"path":581,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":582,"sourceHtmlUrl":583},"reference\u002Fv-for-key-attribute.md",3244,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-for-key-attribute.md",{"path":585,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":586,"sourceHtmlUrl":587},"reference\u002Fv-for-range-starts-at-one.md",2264,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-for-range-starts-at-one.md",{"path":589,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":590,"sourceHtmlUrl":591},"reference\u002Fv-if-null-check-order.md",4305,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-if-null-check-order.md",{"path":593,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":594,"sourceHtmlUrl":595},"reference\u002Fv-model-ignores-html-attributes.md",2519,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-model-ignores-html-attributes.md",{"path":597,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":598,"sourceHtmlUrl":599},"reference\u002Fv-model-ime-composition.md",2897,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-model-ime-composition.md",{"path":601,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":602,"sourceHtmlUrl":603},"reference\u002Fv-model-number-modifier-behavior.md",3693,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-model-number-modifier-behavior.md",{"path":605,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":606,"sourceHtmlUrl":607},"reference\u002Fv-show-template-limitation.md",3635,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fv-show-template-limitation.md",{"path":609,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":610,"sourceHtmlUrl":611},"reference\u002Fwatch-async-cleanup.md",4434,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fwatch-async-cleanup.md",{"path":613,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":614,"sourceHtmlUrl":615},"reference\u002Fwatch-async-creation-memory-leak.md",4133,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fwatch-async-creation-memory-leak.md",{"path":617,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":618,"sourceHtmlUrl":619},"reference\u002Fwatch-deep-same-object-reference.md",4444,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fwatch-deep-same-object-reference.md",{"path":621,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":622,"sourceHtmlUrl":623},"reference\u002Fwatch-flush-timing.md",5038,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fwatch-flush-timing.md",{"path":625,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":626,"sourceHtmlUrl":627},"reference\u002Fwatch-reactive-property-getter.md",3017,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fwatch-reactive-property-getter.md",{"path":629,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":630,"sourceHtmlUrl":631},"reference\u002Fwatcheffect-async-dependency-tracking.md",4645,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fwatcheffect-async-dependency-tracking.md",{"path":633,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":634,"sourceHtmlUrl":635},"reference\u002Fwatcheffect-flush-post-for-refs.md",4276,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-debug-guides\u002Freference\u002Fwatcheffect-flush-post-for-refs.md",{"path":637,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":638,"sourceHtmlUrl":639},"references\u002Fcommands.md",7233,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Freferences\u002Fcommands.md",{"path":641,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":642,"sourceHtmlUrl":643},"references\u002Fconfiguration.md",7599,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Freferences\u002Fconfiguration.md",{"path":645,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":646,"sourceHtmlUrl":647},"references\u002Fpublished-release-repair.md",1834,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Freferences\u002Fpublished-release-repair.md",{"path":649,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":650,"sourceHtmlUrl":651},"references\u002Frelease-notes.md",3884,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Freferences\u002Frelease-notes.md",{"path":653,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":654,"sourceHtmlUrl":655},"references\u002Frelease-workflow.md",6770,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Freferences\u002Frelease-workflow.md",{"path":657,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":658,"sourceHtmlUrl":659},"references\u002Fsetup.md",5535,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Freferences\u002Fsetup.md",{"path":661,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":662,"sourceHtmlUrl":663},"references\u002Ftroubleshooting.md",6308,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Freferences\u002Ftroubleshooting.md",{"path":665,"resourceType":666,"resourceTypeDesc":667,"sizeBytes":668,"sourceHtmlUrl":669},"scripts\u002Fcheck-setup.sh","SCRIPT","脚本",3477,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freleasepr\u002Fscripts\u002Fcheck-setup.sh",[671,695,709,731,743,757],{"skillNo":672,"name":673,"nameZh":6,"description":674,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":675,"categories":676,"keywords":677,"publishedAt":39},"01M6WMNKD3Y4H9FGM8Q901F507","hierarchical-agents-md","层级 AGENTS.md \u002F README.md：init、update、audit、reorganize、trim。 初始化 Agent 指令、代码改动后同步文档、检查文档漂移、重组仓库文档层级、精简规则与 Skills。 Not for 写业务代码或生成文档站点。","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcustom\u002Fhierarchical-agents-md\u002FSKILL.md",[],[678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694],"hierarchical agents md","agents md","party","init","third-party","true","git","packages","change","maintenance","初始化","文档","audit","for","README","update","python",{"skillNo":696,"name":697,"nameZh":6,"description":698,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":699,"categories":700,"keywords":702,"publishedAt":39},"01M6CFS6BRTQPFZCDHQP97HYXR","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvueuse\u002Fvueuse-functions\u002FSKILL.md",[701],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[703,704,705,30,706,707,708,32],"functions","vueuse functions","js","https","nuxt","build",{"skillNo":710,"name":711,"nameZh":6,"description":712,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":713,"categories":714,"keywords":719,"publishedAt":39},"01M6CFS34MDQXZPAWQFE5D7VGT","vue-testing-best-practices","Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-testing-best-practices\u002FSKILL.md",[715,718],{"categoryNo":716,"categoryName":717,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[720,30,721,722,723,724,725,726,727,728,32,729,730,37,705],"best practices","testing best practices","testing","vue testing best practices","e2e testing","playwright","test","testing patterns","component","vitest","e2e",{"skillNo":732,"name":733,"nameZh":6,"description":734,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":735,"categories":736,"keywords":738,"publishedAt":39},"01M6CFS0N19MSJNTVM9AEQ7Z73","vue-router-best-practices","Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-router-best-practices\u002FSKILL.md",[737],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[739,720,30,740,32,728,741,742],"vue router best practices","router","navigation","lifecycle",{"skillNo":744,"name":745,"nameZh":6,"description":746,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":747,"categories":748,"keywords":750,"publishedAt":39},"01M6CFRYN31RFQFTE41Z6DCGKE","vue-pinia-best-practices","Pinia stores, state management patterns, store setup, and reactivity with stores.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002FSKILL.md",[749],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[720,30,751,752,753,754,32,755,756],"vue pinia best practices","pinia","state","state management","management","setup",{"skillNo":758,"name":759,"nameZh":6,"description":760,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":761,"categories":762,"keywords":768,"publishedAt":39},"01M6CFRW2DKXJHP05DYJ3P3Y2S","vue-options-api-best-practices","Vue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-options-api-best-practices\u002FSKILL.md",[763,764,767],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":765,"categoryName":766,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[30,720,769,770,771,772,773,32,774,775],"vue options api best practices","api","only","data","reference","methods","context"]