#381 by GitHub stars
vuejs-ai/skills
Agent skills for Vue 3 development
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/create-adaptable-composable/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
198f0cd8f7f9 → 198f0cd8f7f9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 198f0cd8f7f9
No earlier version was observed for comparison.
skills/vue-best-practices/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
198f0cd8f7f9 → 198f0cd8f7f9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 198f0cd8f7f9
No earlier version was observed for comparison.
skills/vue-debug-guides/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
198f0cd8f7f9 → 198f0cd8f7f9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 198f0cd8f7f9
No earlier version was observed for comparison.
skills/vue-jsx-best-practices/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
198f0cd8f7f9 → 198f0cd8f7f9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 198f0cd8f7f9
No earlier version was observed for comparison.
skills/vue-options-api-best-practices/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
198f0cd8f7f9 → 198f0cd8f7f9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 198f0cd8f7f9
No earlier version was observed for comparison.
skills/vue-pinia-best-practices/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
198f0cd8f7f9 → 198f0cd8f7f9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 198f0cd8f7f9
No earlier version was observed for comparison.
skills/vue-router-best-practices/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
198f0cd8f7f9 → 198f0cd8f7f9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 198f0cd8f7f9
No earlier version was observed for comparison.
skills/vue-testing-best-practices/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
198f0cd8f7f9 → 198f0cd8f7f9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 198f0cd8f7f9
No earlier version was observed for comparison.
Verified commit 198f0cd8f7f9c0a3d9b566ccc16de6677519ee78
git clone --filter=blob:none --no-checkout https://github.com/vuejs-ai/skills.git .hotskills/vuejs-ai-skills && git -C .hotskills/vuejs-ai-skills checkout --detach 198f0cd8f7f9c0a3d9b566ccc16de6677519ee78
# Copy each selected skill directory from .hotskills/vuejs-ai-skills into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/vuejs-ai/skills.git .hotskills/vuejs-ai-skills && git -C .hotskills/vuejs-ai-skills checkout --detach 198f0cd8f7f9c0a3d9b566ccc16de6677519ee78
# Copy each selected skill directory from .hotskills/vuejs-ai-skills into .agents/skills/<skill-name>/Heat
5.2- Star growth, last 7 daysAhead of 86% of tracked repositories
- Star growth, last 24 hoursAhead of 3% of tracked repositories
- Rank movement, last 7 daysAhead of 46% of tracked repositories
- Commits, last 30 daysAhead of 83% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- create-adaptable-composable
skills/create-adaptable-composable - vue-best-practices
skills/vue-best-practices - vue-debug-guides
skills/vue-debug-guides - vue-jsx-best-practices
skills/vue-jsx-best-practices - vue-options-api-best-practices
skills/vue-options-api-best-practices - vue-pinia-best-practices
skills/vue-pinia-best-practices - vue-router-best-practices
skills/vue-router-best-practices - vue-testing-best-practices
skills/vue-testing-best-practices
How it works
create-adaptable-composable
When your agent uses it
Create a library-grade Vue composable that accepts maybe-reactive inputs (MaybeRef / MaybeRefOrGetter) so callers can pass a plain value, ref, or getter. Normalize inputs with toValue()/toRef() inside reactive effects (watch/watchEffect) to keep behavior predictable and reactive. Use this skill when user asks for creating adaptable or reusable composables.
What it loads into context
Frontmatter
130 tokensAlways available to the agent
SKILL.md
661 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Type Concepts
Files
../../.claude-plugin/marketplace.jsonasset2,583 bytesSKILL.mdcore2,672 bytes
Read SKILL.md
# Create Adaptable Composable
Adaptable composables are reusable functions that can accept both reactive and non-reactive inputs. This allows developers to use the composable in a variety of contexts without worrying about the reactivity of the inputs.
Steps to design an adaptable composable in Vue.js:
1. Confirm the composable's purpose and API design and expected inputs/outputs.
2. Identify inputs params that should be reactive (MaybeRef / MaybeRefOrGetter).
3. Use `toValue()` or `toRef()` to normalize inputs inside reactive effects.
4. Implement the core logic of the composable using Vue's reactivity APIs.
## Core Type Concepts
### Type Utilities
View the complete source on GitHubvue-best-practices
When your agent uses it
MUST be used for Vue.js tasks. Strongly recommends Composition API with `<script setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.
What it loads into context
Frontmatter
109 tokensAlways available to the agent
SKILL.md
2,062 tokensWhen the skill is activated
Reference documents
27,084 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- 1) Confirm architecture before coding (required)
- 2) Apply essential Vue foundations (required)
- 3) Consider optional features only when requirements call for them
- 4) Run performance optimization after behavior is correct
- 5) Final self-check before finishing
Files
SKILL.mdcore10,475 bytesSKILL.mdcore10,475 bytesSKILL.mdcore10,475 bytesreferences/animation-class-based-technique.mddoc5,026 bytesreferences/animation-state-driven-technique.mddoc5,829 bytesreferences/component-async.mddoc2,532 bytesreferences/component-data-flow.mddoc10,520 bytesreferences/component-fallthrough-attrs.mddoc4,047 bytesreferences/component-keep-alive.mddoc3,487 bytesreferences/component-slots.mddoc4,469 bytesreferences/component-suspense.mddoc5,367 bytesreferences/component-teleport.mddoc2,921 bytesreferences/component-transition-group.mddoc3,004 bytesreferences/component-transition.mddoc2,722 bytesreferences/composables.mddoc8,630 bytesreferences/directives.mddoc3,803 bytesreferences/perf-avoid-component-abstraction-in-lists.mddoc4,683 bytesreferences/perf-v-once-v-memo-directives.mddoc6,191 bytesreferences/perf-virtualize-large-lists.mddoc5,002 bytesreferences/plugins.mddoc3,882 bytesreferences/reactivity.mddoc8,452 bytesreferences/render-functions.mddoc3,866 bytesreferences/sfc.mddoc6,216 bytesreferences/state-management.mddoc3,380 bytesreferences/updated-hook-performance.mddoc4,618 bytes
Read SKILL.md
# Vue Best Practices Workflow
Use this skill as an instruction set. Follow the workflow in order unless the user explicitly asks for a different order.
## Core Principles
- **Keep state predictable:** one source of truth, derive everything else.
- **Make data flow explicit:** Props down, Events up for most cases.
- **Decompose by responsibility:** keep each implementation focused and the contracts between implementations explicit.
- **Avoid unnecessary re-renders:** use computed properties and watchers wisely.
- **Readability counts:** write clear, self-documenting code.
## 1) Confirm architecture before coding (required)
- Default stack: Vue 3 + Composition API + `<script setup lang="ts">`.View the complete source on GitHubvue-debug-guides
When your agent uses it
Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues. Use when diagnosing or fixing Vue issues.
What it loads into context
Frontmatter
65 tokensAlways available to the agent
SKILL.md
4,418 tokensWhen the skill is activated
Reference documents
141,657 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore20,931 bytesreference/animation-key-for-rerender.mddoc4,601 bytesreference/animation-transitiongroup-performance.mddoc5,854 bytesreference/async-component-error-handling.mddoc3,291 bytesreference/async-component-keepalive-ref-issue.mddoc2,894 bytesreference/async-component-suspense-control.mddoc2,167 bytesreference/async-component-vue-router.mddoc2,893 bytesreference/attrs-event-listener-merging.mddoc4,707 bytesreference/checkbox-true-false-value-form-submission.mddoc3,505 bytesreference/cleanup-side-effects.mddoc4,343 bytesreference/click-events-on-components.mddoc4,730 bytesreference/component-naming-conflicts.mddoc4,461 bytesreference/component-ref-requires-defineexpose.mddoc4,204 bytesreference/composable-avoid-hidden-side-effects.mddoc5,867 bytesreference/composable-call-location-restrictions.mddoc4,903 bytesreference/composable-naming-return-pattern.mddoc3,994 bytesreference/composable-tovalue-inside-watcheffect.mddoc5,216 bytesreference/composition-api-not-functional-programming.mddoc3,896 bytesreference/composition-api-script-setup-async-context.mddoc5,360 bytesreference/composition-api-vs-react-hooks-differences.mddoc4,909 bytesreference/computed-array-mutation.mddoc4,372 bytesreference/computed-conditional-dependencies.mddoc4,379 bytesreference/computed-no-parameters.mddoc4,490 bytesreference/computed-no-side-effects.mddoc3,289 bytesreference/computed-return-value-readonly.mddoc4,096 bytesreference/configure-app-before-mount.mddoc2,776 bytesreference/declare-emits-for-documentation.mddoc5,121 bytesreference/define-expose-before-await.mddoc4,288 bytesreference/define-model-default-value-sync.mddoc4,046 bytesreference/defineEmits-must-be-top-level.mddoc4,156 bytesreference/defineEmits-no-runtime-and-type-mixed.mddoc4,342 bytesreference/definemodel-object-mutation-no-emit.mddoc4,103 bytesreference/dom-update-timing-nexttick.mddoc2,791 bytesreference/dynamic-argument-constraints.mddoc4,333 bytesreference/dynamic-component-registration-vite.mddoc4,256 bytesreference/event-modifier-order-matters.mddoc2,815 bytesreference/exact-modifier-for-precise-shortcuts.mddoc4,368 bytesreference/fallthrough-attrs-overwrite-vue3.mddoc3,912 bytesreference/in-dom-template-parsing-caveats.mddoc4,530 bytesreference/inheritattrs-false-for-wrapper-components.mddoc4,515 bytesreference/keepalive-router-nested-double-mount.mddoc5,111 bytesreference/keepalive-transition-memory-leak.mddoc3,574 bytesreference/keyup-modifier-timing.mddoc4,297 bytesreference/lifecycle-dom-access-timing.mddoc5,186 bytesreference/lifecycle-hooks-synchronous-registration.mddoc3,919 bytesreference/lifecycle-ssr-awareness.mddoc5,114 bytesreference/local-components-not-in-descendants.mddoc3,772 bytesreference/mount-return-value.mddoc2,691 bytesreference/multi-root-component-class-attrs.mddoc2,437 bytesreference/native-event-collision-with-emits.mddoc4,556 bytesreference/no-passive-with-prevent.mddoc3,807 bytesreference/no-v-if-with-v-for.mddoc3,929 bytesreference/perf-computed-object-stability.mddoc4,772 bytesreference/perf-props-stability-update-optimization.mddoc3,820 bytesreference/plugin-global-properties-sparingly.mddoc3,471 bytesreference/plugin-install-before-mount.mddoc3,215 bytesreference/plugin-prefer-provide-inject-over-global-properties.mddoc3,435 bytesreference/plugin-typescript-type-augmentation.mddoc4,179 bytesreference/prop-defineprops-scope-limitation.mddoc3,717 bytesreference/provide-inject-debugging-challenges.mddoc5,651 bytesreference/provide-inject-default-value-factory.mddoc5,690 bytesreference/provide-inject-reactivity-not-automatic.mddoc5,133 bytesreference/provide-inject-synchronous-setup.mddoc5,171 bytesreference/reactive-destructuring.mddoc2,672 bytesreference/reactivity-debugging-hooks.mddoc4,323 bytesreference/reactivity-markraw-for-non-reactive.mddoc4,670 bytesreference/reactivity-proxy-identity-hazard.mddoc3,044 bytesreference/reactivity-same-tick-batching.mddoc4,529 bytesreference/ref-value-access.mddoc2,099 bytesreference/refs-in-collections-need-value.mddoc3,029 bytesreference/render-function-avoid-internal-vnode-properties.mddoc4,370 bytesreference/render-function-vnodes-must-be-unique.mddoc3,525 bytesreference/rendering-render-function-h-import-vue3.mddoc3,348 bytesreference/rendering-render-function-return-from-setup.mddoc3,640 bytesreference/rendering-render-function-slots-as-functions.mddoc4,135 bytesreference/rendering-resolve-component-for-string-names.mddoc5,737 bytesreference/select-initial-value-ios-bug.mddoc3,123 bytesreference/self-referencing-component-name.mddoc3,734 bytesreference/sfc-named-exports-forbidden.mddoc4,423 bytesreference/sfc-scoped-css-child-component-styling.mddoc3,741 bytesreference/sfc-scoped-css-dynamic-content.mddoc4,462 bytesreference/sfc-scoped-css-slot-content.mddoc4,684 bytesreference/sfc-script-setup-reactivity.mddoc5,059 bytesreference/slot-forwarding-to-child-components.mddoc4,019 bytesreference/slot-implicit-default-content.mddoc3,468 bytesreference/slot-name-reserved-prop.mddoc2,781 bytesreference/slot-named-scoped-explicit-default.mddoc3,007 bytesreference/slot-render-scope-parent-only.mddoc3,652 bytesreference/slot-v-slot-on-components-or-templates-only.mddoc3,081 bytesreference/ssr-hydration-mismatch-causes.mddoc6,945 bytesreference/ssr-platform-specific-apis.mddoc6,925 bytesreference/state-ssr-cross-request-pollution.mddoc7,102 bytesreference/suspense-no-builtin-error-handling.mddoc3,010 bytesreference/suspense-ssr-hydration-issues.mddoc4,301 bytesreference/tailwind-dynamic-class-generation.mddoc3,157 bytesreference/teleport-scoped-styles-limitation.mddoc3,905 bytesreference/teleport-ssr-hydration.mddoc3,781 bytesreference/teleport-target-must-exist.mddoc3,304 bytesreference/template-expressions-restrictions.mddoc3,443 bytesreference/template-functions-no-side-effects.mddoc5,193 bytesreference/template-ref-null-with-v-if.mddoc3,023 bytesreference/template-ref-unwrapping-top-level.mddoc3,135 bytesreference/template-ref-v-for-order.mddoc4,547 bytesreference/textarea-no-interpolation.mddoc2,298 bytesreference/transition-group-flip-inline-elements.mddoc4,021 bytesreference/transition-group-move-animation-position-absolute.mddoc3,747 bytesreference/transition-group-no-default-wrapper-vue3.mddoc4,003 bytesreference/transition-js-hooks-done-callback.mddoc6,164 bytesreference/transition-nested-duration.mddoc4,997 bytesreference/transition-reusable-scoped-style.mddoc5,290 bytesreference/transition-router-view-appear.mddoc4,930 bytesreference/transition-type-when-mixed.mddoc4,419 bytesreference/transition-unmount-hook-timing.mddoc4,309 bytesreference/ts-defineprops-boolean-default-false.mddoc5,532 bytesreference/ts-defineprops-imported-types-limitations.mddoc6,017 bytesreference/ts-event-handler-explicit-typing.mddoc5,945 bytesreference/ts-reactive-no-generic-argument.mddoc4,845 bytesreference/ts-shallowref-for-dynamic-components.mddoc6,081 bytesreference/ts-template-ref-null-handling.mddoc5,354 bytesreference/ts-template-type-casting.mddoc5,096 bytesreference/ts-withdefaults-mutable-factory-function.mddoc4,641 bytesreference/undeclared-emits-double-firing.mddoc4,973 bytesreference/use-template-ref-vue35.mddoc4,285 bytesreference/v-else-must-follow-v-if.mddoc3,962 bytesreference/v-for-component-props.mddoc2,621 bytesreference/v-for-computed-reverse-sort.mddoc2,843 bytesreference/v-for-key-attribute.mddoc3,244 bytesreference/v-for-range-starts-at-one.mddoc2,264 bytesreference/v-if-null-check-order.mddoc4,305 bytesreference/v-model-ignores-html-attributes.mddoc2,519 bytesreference/v-model-ime-composition.mddoc2,897 bytesreference/v-model-number-modifier-behavior.mddoc3,693 bytesreference/v-show-template-limitation.mddoc3,635 bytesreference/watch-async-cleanup.mddoc4,434 bytesreference/watch-async-creation-memory-leak.mddoc4,133 bytesreference/watch-deep-same-object-reference.mddoc4,444 bytesreference/watch-flush-timing.mddoc5,038 bytesreference/watch-reactive-property-getter.mddoc3,017 bytesreference/watcheffect-async-dependency-tracking.mddoc4,645 bytesreference/watcheffect-flush-post-for-refs.mddoc4,276 bytes
Read SKILL.md
Vue 3 debugging and error handling for runtime issues, warnings, async failures, and hydration bugs.
For development best practices and common gotchas, use `vue-best-practices`.
### Reactivity
- Tracing unexpected re-renders and state updates → See [reactivity-debugging-hooks](reference/reactivity-debugging-hooks.md)
- Ref values not updating due to missing .value access → See [ref-value-access](reference/ref-value-access.md)
- State stops updating after destructuring reactive objects → See [reactive-destructuring](reference/reactive-destructuring.md)
- Refs inside arrays, Maps, or Sets not unwrapping → See [refs-in-collections-need-value](reference/refs-in-collections-need-value.md)
- Nested refs rendering as [object Object] in templates → See [template-ref-unwrapping-top-level](reference/template-ref-unwrapping-top-level.md)
- Reactive proxy identity comparisons always return false → See [reactivity-proxy-identity-hazard](reference/reactivity-proxy-identity-hazard.md)
- Third-party instances breaking when proxied → See [reactivity-markraw-for-non-reactive](reference/reactivity-markraw-for-non-reactive.md)
- Watchers only firing once per tick unexpectedly → See [reactivity-same-tick-batching](reference/reactivity-same-tick-batching.md)
### ComputedView the complete source on GitHubvue-jsx-best-practices
When your agent uses it
JSX syntax in Vue (e.g., class vs className, JSX plugin config).
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
103 tokensWhen the skill is activated
Reference documents
1,004 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore393 bytesreference/render-function-jsx-vue-vs-react.mddoc4,074 bytes
Read SKILL.md
Vue JSX best practices and differences from React JSX.
### JSX
- Migrating React JSX code to Vue or getting attribute type errors → See [render-function-jsx-vue-vs-react](reference/render-function-jsx-vue-vs-react.md)View the complete source on GitHubvue-options-api-best-practices
When your agent uses it
Vue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.
What it loads into context
Frontmatter
55 tokensAlways available to the agent
SKILL.md
390 tokensWhen the skill is activated
Reference documents
9,514 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore1,847 bytesreference/no-arrow-functions-in-lifecycle-hooks.mddoc2,917 bytesreference/no-arrow-functions-in-methods.mddoc2,034 bytesreference/stateful-methods-lifecycle.mddoc1,923 bytesreference/ts-options-api-arrow-functions-validators.mddoc4,691 bytesreference/ts-options-api-computed-return-types.mddoc4,924 bytesreference/ts-options-api-proptype-complex-types.mddoc4,909 bytesreference/ts-options-api-provide-inject-limitations.mddoc3,342 bytesreference/ts-options-api-type-event-handlers.mddoc5,582 bytesreference/ts-options-api-use-definecomponent.mddoc4,690 bytesreference/ts-strict-mode-options-api.mddoc4,840 bytes
Read SKILL.md
Vue.js Options API best practices, TypeScript integration, and common gotchas.
### TypeScript
- Need to enable TypeScript type inference for component properties → See [ts-options-api-use-definecomponent](reference/ts-options-api-use-definecomponent.md)
- Enabling type safety for Options API this context → See [ts-strict-mode-options-api](reference/ts-strict-mode-options-api.md)
- Using old TypeScript versions with prop validators → See [ts-options-api-arrow-functions-validators](reference/ts-options-api-arrow-functions-validators.md)
- Event handler parameters need proper type safety → See [ts-options-api-type-event-handlers](reference/ts-options-api-type-event-handlers.md)
- Need to type object or array props with interfaces → See [ts-options-api-proptype-complex-types](reference/ts-options-api-proptype-complex-types.md)
- Injected properties missing TypeScript types completely → See [ts-options-api-provide-inject-limitations](reference/ts-options-api-provide-inject-limitations.md)
- Complex computed properties lack clear type documentation → See [ts-options-api-computed-return-types](reference/ts-options-api-computed-return-types.md)
### Methods & Lifecycle
- Methods aren't binding to component instance context → See [no-arrow-functions-in-methods](reference/no-arrow-functions-in-methods.md)
- Lifecycle hooks losing access to component data → See [no-arrow-functions-in-lifecycle-hooks](reference/no-arrow-functions-in-lifecycle-hooks.md)View the complete source on GitHubvue-pinia-best-practices
When your agent uses it
Pinia stores, state management patterns, store setup, and reactivity with stores.
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
271 tokensWhen the skill is activated
Reference documents
8,958 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore1,170 bytesreference/pinia-no-active-pinia-error.mddoc6,407 bytesreference/pinia-setup-store-return-all-state.mddoc5,935 bytesreference/pinia-store-destructuring-breaks-reactivity.mddoc5,192 bytesreference/state-url-for-ephemeral-filters.mddoc7,225 bytesreference/state-use-pinia-for-large-apps.mddoc6,390 bytesreference/store-method-binding-parentheses.mddoc5,309 bytes
Read SKILL.md
Pinia best practices, common gotchas, and state management patterns.
### Store Setup
- Getting "getActivePinia was called" error at startup → See [pinia-no-active-pinia-error](reference/pinia-no-active-pinia-error.md)
- Setup stores missing state in DevTools or SSR → See [pinia-setup-store-return-all-state](reference/pinia-setup-store-return-all-state.md)
### Reactivity
- Store destructuring stops updating UI reactively → See [pinia-store-destructuring-breaks-reactivity](reference/pinia-store-destructuring-breaks-reactivity.md)
- Store methods lose context in template calls → See [store-method-binding-parentheses](reference/store-method-binding-parentheses.md)
### State Patterns
- Filters reset on refresh or can't be shared → See [state-url-for-ephemeral-filters](reference/state-url-for-ephemeral-filters.md)
- Building production app without DevTools or conventions → See [state-use-pinia-for-large-apps](reference/state-use-pinia-for-large-apps.md)View the complete source on GitHubvue-router-best-practices
When your agent uses it
Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
306 tokensWhen the skill is activated
Reference documents
9,862 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore1,492 bytesreference/router-beforeenter-no-param-trigger.mddoc4,916 bytesreference/router-beforerouteenter-no-this.mddoc5,022 bytesreference/router-guard-async-await-pattern.mddoc5,899 bytesreference/router-navigation-guard-infinite-loop.mddoc5,491 bytesreference/router-navigation-guard-next-deprecated.mddoc4,277 bytesreference/router-param-change-no-lifecycle.mddoc5,061 bytesreference/router-simple-routing-cleanup.mddoc5,349 bytesreference/router-use-vue-router-for-production.mddoc5,323 bytes
Read SKILL.md
Vue Router best practices, common gotchas, and navigation patterns.
### Navigation Guards
- Navigating between same route with different params → See [router-beforeenter-no-param-trigger](reference/router-beforeenter-no-param-trigger.md)
- Accessing component instance in beforeRouteEnter guard → See [router-beforerouteenter-no-this](reference/router-beforerouteenter-no-this.md)
- Navigation guard making API calls without awaiting → See [router-guard-async-await-pattern](reference/router-guard-async-await-pattern.md)
- Users trapped in infinite redirect loops → See [router-navigation-guard-infinite-loop](reference/router-navigation-guard-infinite-loop.md)
- Navigation guard using deprecated next() function → See [router-navigation-guard-next-deprecated](reference/router-navigation-guard-next-deprecated.md)
### Route Lifecycle
- Stale data when navigating between same route → See [router-param-change-no-lifecycle](reference/router-param-change-no-lifecycle.md)
- Event listeners persisting after component unmounts → See [router-simple-routing-cleanup](reference/router-simple-routing-cleanup.md)
### SetupView the complete source on GitHubvue-testing-best-practices
When your agent uses it
Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
475 tokensWhen the skill is activated
Reference documents
14,712 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference
Files
SKILL.mdcore2,129 bytesreference/async-component-testing.mddoc4,896 bytesreference/teleport-testing-complexity.mddoc4,136 bytesreference/testing-async-await-flushpromises.mddoc5,254 bytesreference/testing-browser-vs-node-runners.mddoc5,623 bytesreference/testing-component-blackbox-approach.mddoc4,753 bytesreference/testing-composables-helper-wrapper.mddoc6,119 bytesreference/testing-e2e-playwright-recommended.mddoc6,581 bytesreference/testing-no-snapshot-only.mddoc6,283 bytesreference/testing-pinia-store-setup.mddoc6,249 bytesreference/testing-suspense-async-components.mddoc6,448 bytesreference/testing-vitest-recommended-for-vue.mddoc5,039 bytes
Read SKILL.md
Vue.js testing best practices, patterns, and common gotchas.
### Testing
- Setting up test infrastructure for Vue 3 projects → See [testing-vitest-recommended-for-vue](reference/testing-vitest-recommended-for-vue.md)
- Tests keep breaking when refactoring component internals → See [testing-component-blackbox-approach](reference/testing-component-blackbox-approach.md)
- Tests fail intermittently with race conditions → See [testing-async-await-flushpromises](reference/testing-async-await-flushpromises.md)
- Composables using lifecycle hooks or inject fail to test → See [testing-composables-helper-wrapper](reference/testing-composables-helper-wrapper.md)
- Getting "injection Symbol(pinia) not found" errors in tests → See [testing-pinia-store-setup](reference/testing-pinia-store-setup.md)
- Components with async setup won't render in tests → See [testing-suspense-async-components](reference/testing-suspense-async-components.md)
- Snapshot tests keep passing despite broken functionality → See [testing-no-snapshot-only](reference/testing-no-snapshot-only.md)
- Choosing end-to-end testing framework for Vue apps → See [testing-e2e-playwright-recommended](reference/testing-e2e-playwright-recommended.md)
- Tests need to verify computed styles or real DOM events → See [testing-browser-vs-node-runners](reference/testing-browser-vs-node-runners.md)
- Testing components created with defineAsyncComponent fails → See [async-component-testing](reference/async-component-testing.md)
- Teleported modal content can't be found in wrapper queries → See [teleport-testing-complexity](reference/teleport-testing-complexity.md)View the complete source on GitHubSkills included
- create-adaptable-composable
- vue-best-practices
- vue-debug-guides
- vue-jsx-best-practices
- vue-options-api-best-practices
- vue-pinia-best-practices
- vue-router-best-practices
- vue-testing-best-practices
Repository facts
- License
- MIT
- Created
- Jan 21, 2026
- Last pushed
- Oct 23, 2026
- Forks
- 192
- Open issues
- 7
- Project activity
- Active
Rank over the last 12 weeks
Now #381 · best #308 · down 22 in 30 days
- #372 on Nov 2
- #374 on Nov 3
- #373 on Nov 4
- #374 on Nov 5
- #378 on Nov 6
- #381 since Nov 7
74 earlier periods
- #289 on Aug 2
- #298 on Aug 8
- #306 on Aug 10
- #301 from Aug 11 to Aug 12
- #306 on Aug 13
- #304 on Aug 14
- #303 on Aug 15
- #308 on Aug 16
- #315 on Aug 18
- #314 on Aug 19
- #311 on Aug 20
- #314 on Aug 21
- #308 on Aug 22
- #315 on Aug 23
- #318 on Aug 24
- #319 on Aug 25
- #318 on Aug 26
- #315 on Aug 27
- #318 on Aug 28
- #317 on Aug 29
- #311 on Aug 30
- #319 on Aug 31
- #323 on Sep 1
- #322 on Sep 2
- #327 on Sep 3
- #322 on Sep 5
- #321 on Sep 6
- #332 on Sep 7
- #331 on Sep 8
- #334 on Sep 9
- #333 on Sep 10
- #328 on Sep 11
- #332 on Sep 12
- #329 on Sep 13
- #333 on Sep 14
- #335 on Sep 15
- #334 on Sep 16
- #332 on Sep 17
- #336 on Sep 18
- #332 on Sep 19
- #341 on Sep 20
- #346 on Sep 22
- #339 from Sep 23 to Sep 24
- #338 on Sep 25
- #337 on Sep 26
- #347 on Sep 28
- #355 on Sep 29
- #352 from Sep 30 to Oct 1
- #350 on Oct 3
- #346 on Oct 4
- #353 on Oct 5
- #352 on Oct 6
- #356 on Oct 7
- #359 on Oct 8
- #365 on Oct 9
- #356 on Oct 10
- #361 on Oct 11
- #368 on Oct 12
- #372 on Oct 14
- #371 on Oct 15
- #375 on Oct 16
- #368 on Oct 17
- #375 on Oct 19
- #369 on Oct 20
- #365 on Oct 21
- #361 on Oct 22
- #359 on Oct 23
- #356 on Oct 24
- #367 on Oct 25
- #369 on Oct 28
- #368 on Oct 29
- #371 on Oct 30
- #372 on Oct 31
- #371 on Nov 1
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 2 notes
skills/vue-best-practices/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/vue-best-practices/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 613 network referencesin 178 files: vue-debug-guides/reference/define-expose-before-await.md:35 vue-debug-guides/reference/watcheffect-async-dependency-tracking.md:31 vue-debug-guides/reference/computed-no-side-effects.md:38 and 175 more
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- 2 references to secretsin 1 file: vue-testing-best-practices/reference/testing-browser-vs-node-runners.md:11
- No requests to vote in Hot
Show all 615 signals by file
skills/vue-best-practices/references/reactivity.md
- Network accessline 263
A computed getter should only derive a value. No mutation, no API calls, no storage writes, no event emits. ([Reference](https://vuejs.org/guide/essentials/computed.html#best-practices)) - Network accessline 264
([Reference](https://vuejs.org/guide/essentials/computed.html#best-practices)) - Network accessline 338
const res = await fetch(`/api/search?q=${encodeURIComponent(q)}`, {
skills/vue-best-practices/references/sfc.md
skills/vue-best-practices/references/updated-hook-performance.md
- Network accessline 31
updated() { // This runs after every single state change! fetch('/api/sync', { - Network accessline 32
// This runs after every single state change! fetch('/api/sync', { method: 'POST', - Network accessline 33
fetch('/api/sync', { - Network accessline 83
methods: { syncToServer: debounce(function(items) { fetch('/api/sync', { - Network accessline 84
syncToServer: debounce(function(items) { fetch('/api/sync', { method: 'POST', - Network accessline 85
fetch('/api/sync', { - Network accessline 108
const syncToServer = useDebounceFn((items) => { fetch('/api/sync', { method: 'POST', body: JSON.stringify(items) }) - Network accessline 109
fetch('/api/sync', { method: 'POST', body: JSON.stringify(items) })
skills/vue-debug-guides/reference/animation-key-for-rerender.md
- Network accessline 157
## Reference - [Vue.js Animation Techniques](https://vuejs.org/guide/extras/animation.html) - Network accessline 158
- [Vue.js Animation Techniques](https://vuejs.org/guide/extras/animation.html) - Network accessline 159
- [AutoAnimate with Vue](https://auto-animate.formkit.com/#usage-vue) - Network accessline 160
- [Vue.js v-for with key](https://vuejs.org/guide/essentials/list.html#maintaining-state-with-key)
skills/vue-debug-guides/reference/animation-transitiongroup-performance.md
- Network accessline 238
## Reference - [Vue.js TransitionGroup](https://vuejs.org/guide/built-ins/transition-group.html) - Network accessline 239
- [Vue.js TransitionGroup](https://vuejs.org/guide/built-ins/transition-group.html) - Network accessline 240
- [GitHub Issue: transition-group DOM update lag](https://github.com/vuejs/vue/issues/5845) - Network accessline 241
- [Vue Virtual Scroller](https://github.com/Akryum/vue-virtual-scroller)
skills/vue-debug-guides/reference/async-component-error-handling.md
skills/vue-debug-guides/reference/async-component-keepalive-ref-issue.md
skills/vue-debug-guides/reference/async-component-vue-router.md
skills/vue-debug-guides/reference/attrs-event-listener-merging.md
skills/vue-debug-guides/reference/checkbox-true-false-value-form-submission.md
- Network accessline 88
await fetch('/api/update', { - Network accessline 117
## Reference - [Vue.js Form Input Bindings - Checkbox](https://vuejs.org/guide/essentials/forms.html#checkbox) - Network accessline 118
- [Vue.js Form Input Bindings - Checkbox](https://vuejs.org/guide/essentials/forms.html#checkbox)
skills/vue-debug-guides/reference/cleanup-side-effects.md
- Network accessline 170
## Reference - [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html) - Network accessline 171
- [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html) - Network accessline 172
- [VueUse - useEventListener](https://vueuse.org/core/useEventListener/)
skills/vue-debug-guides/reference/click-events-on-components.md
- Network accessline 177
## Reference - [Vue.js Component Events](https://vuejs.org/guide/components/events.html) - Network accessline 178
- [Vue.js Component Events](https://vuejs.org/guide/components/events.html) - Network accessline 179
- [Vue.js Fallthrough Attributes](https://vuejs.org/guide/components/attrs.html) - Network accessline 180
- [Vue 3 Migration - .native Modifier Removed](https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html)
skills/vue-debug-guides/reference/component-naming-conflicts.md
- Network accessline 157
## Reference - [Vue.js Component Registration](https://vuejs.org/guide/components/registration.html) - Network accessline 158
- [Vue.js Component Registration](https://vuejs.org/guide/components/registration.html) - Network accessline 159
- [GitHub Issue: Global component naming conflicts](https://github.com/vuejs/vue/issues/4434)
skills/vue-debug-guides/reference/component-ref-requires-defineexpose.md
- Network accessline 174
## Reference - [Vue.js Component Refs](https://vuejs.org/guide/essentials/template-refs.html#ref-on-component) - Network accessline 175
- [Vue.js Component Refs](https://vuejs.org/guide/essentials/template-refs.html#ref-on-component) - Network accessline 176
- [Script Setup - defineExpose](https://vuejs.org/api/sfc-script-setup.html#defineexpose)
skills/vue-debug-guides/reference/composable-avoid-hidden-side-effects.md
- Network accessline 184
async function fetch(url) { - Network accessline 206
## Reference - [Vue.js Composables](https://vuejs.org/guide/reusability/composables.html) - Network accessline 207
- [Vue.js Composables](https://vuejs.org/guide/reusability/composables.html) - Network accessline 208
- [Common Mistakes Creating Composition Functions](https://www.telerik.com/blogs/common-mistakes-creating-composition-functions-vue)
skills/vue-debug-guides/reference/composable-call-location-restrictions.md
- Network accessline 75
// Either fetch in onMounted or use a composable designed for arrays onMounted(async () => { results.value = await Promise.all(urls.value.map(url => fetch(url))) - Network accessline 76
onMounted(async () => { results.value = await Promise.all(urls.value.map(url => fetch(url))) }) - Network accessline 77
results.value = await Promise.all(urls.value.map(url => fetch(url))) - Network accessline 139
## Reference - [Vue.js Composables - Usage Restrictions](https://vuejs.org/guide/reusability/composables.html#usage-restrictions) - Network accessline 140
- [Vue.js Composables - Usage Restrictions](https://vuejs.org/guide/reusability/composables.html#usage-restrictions) - Network accessline 141
- [Vue.js Composition API - Setup Context](https://vuejs.org/api/composition-api-setup.html)
skills/vue-debug-guides/reference/composable-naming-return-pattern.md
- Network accessline 137
## Reference - [Vue.js Composables - Conventions and Best Practices](https://vuejs.org/guide/reusability/composables.html#conventions-and-best-practices) - Network accessline 138
- [Vue.js Composables - Conventions and Best Practices](https://vuejs.org/guide/reusability/composables.html#conventions-and-best-practices) - Network accessline 139
- [Vue.js Composables - Return Values](https://vuejs.org/guide/reusability/composables.html#return-values)
skills/vue-debug-guides/reference/composable-tovalue-inside-watcheffect.md
- Network accessline 35
try { // urlValue is a static string - no dependency tracked! const response = await fetch(urlValue) - Network accessline 36
// urlValue is a static string - no dependency tracked! const response = await fetch(urlValue) data.value = await response.json() - Network accessline 37
const response = await fetch(urlValue) - Network accessline 68
try { const response = await fetch(urlValue) - Network accessline 69
const response = await fetch(urlValue) - Network accessline 180
## Reference - [Vue.js Reactivity API - toValue](https://vuejs.org/api/reactivity-utilities.html#tovalue) - Network accessline 181
- [Vue.js Reactivity API - toValue](https://vuejs.org/api/reactivity-utilities.html#tovalue) - Network accessline 182
- [Vue.js Composables - Accepting Ref Arguments](https://vuejs.org/guide/reusability/composables.html#accepting-reactive-state)
skills/vue-debug-guides/reference/composition-api-not-functional-programming.md
- Network accessline 118
## Reference - [Composition API FAQ](https://vuejs.org/guide/extras/composition-api-faq.html) - Network accessline 119
- [Composition API FAQ](https://vuejs.org/guide/extras/composition-api-faq.html) - Network accessline 120
- [Reactivity Fundamentals](https://vuejs.org/guide/essentials/reactivity-fundamentals.html)
skills/vue-debug-guides/reference/composition-api-script-setup-async-context.md
- Network accessline 200
## Reference - [Composition API FAQ - Async Setup](https://vuejs.org/guide/extras/composition-api-faq.html) - Network accessline 201
- [Composition API FAQ - Async Setup](https://vuejs.org/guide/extras/composition-api-faq.html) - Network accessline 202
- [Composables - Async Without Await](https://antfu.me/posts/async-with-composition-api) - Network accessline 203
- [Suspense](https://vuejs.org/guide/built-ins/suspense.html)
skills/vue-debug-guides/reference/composition-api-vs-react-hooks-differences.md
- Network accessline 154
## Reference - [Composition API FAQ - Relationship with React Hooks](https://vuejs.org/guide/extras/composition-api-faq.html#relationship-with-react-hooks) - Network accessline 155
- [Composition API FAQ - Relationship with React Hooks](https://vuejs.org/guide/extras/composition-api-faq.html#relationship-with-react-hooks) - Network accessline 156
- [Reactivity Fundamentals](https://vuejs.org/guide/essentials/reactivity-fundamentals.html)
skills/vue-debug-guides/reference/computed-array-mutation.md
- Network accessline 146
## Reference - [Vue.js Computed Properties - Avoid Mutating Computed Value](https://vuejs.org/guide/essentials/computed.html#avoid-mutating-computed-value) - Network accessline 147
- [Vue.js Computed Properties - Avoid Mutating Computed Value](https://vuejs.org/guide/essentials/computed.html#avoid-mutating-computed-value) - Network accessline 148
- [MDN Array Methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
skills/vue-debug-guides/reference/computed-conditional-dependencies.md
- Network accessline 145
## Reference - [Vue.js Reactivity in Depth](https://vuejs.org/guide/extras/reactivity-in-depth.html) - Network accessline 146
- [Vue.js Reactivity in Depth](https://vuejs.org/guide/extras/reactivity-in-depth.html) - Network accessline 147
- [GitHub Discussion: Dependency collection gotcha with conditionals](https://github.com/vuejs/Discussion/issues/15)
skills/vue-debug-guides/reference/computed-no-parameters.md
- Network accessline 157
## Reference - [Vue.js Computed Properties](https://vuejs.org/guide/essentials/computed.html) - Network accessline 158
- [Vue.js Computed Properties](https://vuejs.org/guide/essentials/computed.html) - Network accessline 159
- [Vue.js Methods](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#declaring-methods)
skills/vue-debug-guides/reference/computed-no-side-effects.md
- Network accessline 38
// BAD: Makes async request const userData = computed(async () => { const response = await fetch('/api/user') // Side effect - API call! - Network accessline 39
const userData = computed(async () => { const response = await fetch('/api/user') // Side effect - API call! return response.json() - Network accessline 40
const response = await fetch('/api/user') // Side effect - API call! - Network accessline 72
// GOOD: Use lifecycle hook for initial fetch onMounted(async () => { const response = await fetch('/api/user') - Network accessline 73
onMounted(async () => { const response = await fetch('/api/user') userData.value = await response.json() - Network accessline 74
const response = await fetch('/api/user') - Network accessline 98
|-----------------|---------|-------------| | State mutation | `otherRef.value = x` | Use watcher | | API calls | `fetch()`, `axios()` | Use watcher or lifecycle hook | - Network accessline 99
| State mutation | `otherRef.value = x` | Use watcher | | API calls | `fetch()`, `axios()` | Use watcher or lifecycle hook | | DOM manipulation | `document.title = x` | Use watcher | - Network accessline 100
| API calls | `fetch()`, `axios()` | Use watcher or lifecycle hook | - Network accessline 106
## Reference - [Vue.js Computed Properties - Getters Should Be Side-Effect Free](https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free) - Network accessline 107
- [Vue.js Computed Properties - Getters Should Be Side-Effect Free](https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free)
skills/vue-debug-guides/reference/computed-return-value-readonly.md
- Network accessline 158
## Reference - [Vue.js Computed Properties - Avoid Mutating Computed Value](https://vuejs.org/guide/essentials/computed.html#avoid-mutating-computed-value) - Network accessline 159
- [Vue.js Computed Properties - Avoid Mutating Computed Value](https://vuejs.org/guide/essentials/computed.html#avoid-mutating-computed-value) - Network accessline 160
- [Vue.js Computed Properties - Writable Computed](https://vuejs.org/guide/essentials/computed.html#writable-computed)
skills/vue-debug-guides/reference/configure-app-before-mount.md
- Network accessline 87
## Reference - [Vue.js - Creating a Vue Application](https://vuejs.org/guide/essentials/application.html) - Network accessline 88
- [Vue.js - Creating a Vue Application](https://vuejs.org/guide/essentials/application.html) - Network accessline 89
- [Vue.js Application API](https://vuejs.org/api/application.html)
skills/vue-debug-guides/reference/declare-emits-for-documentation.md
- Network accessline 209
## Reference - [Vue.js Component Events - Declaring Emitted Events](https://vuejs.org/guide/components/events.html#declaring-emitted-events) - Network accessline 210
- [Vue.js Component Events - Declaring Emitted Events](https://vuejs.org/guide/components/events.html#declaring-emitted-events) - Network accessline 211
- [Vue.js Component Events - Events Validation](https://vuejs.org/guide/components/events.html#events-validation) - Network accessline 212
- [Vue 3 Migration - emits Option](https://v3-migration.vuejs.org/breaking-changes/emits-option)
skills/vue-debug-guides/reference/define-expose-before-await.md
- Network accessline 35
// WRONG: await before defineExpose const response = await fetch('/api/data') - Network accessline 36
const response = await fetch('/api/data') - Network accessline 94
// Now safe to use await const response = await fetch('/api/data') - Network accessline 95
const response = await fetch('/api/data') - Network accessline 116
async function refreshData() { loading.value = true const response = await fetch('/api/data') - Network accessline 117
loading.value = true const response = await fetch('/api/data') data.value = await response.json() - Network accessline 118
const response = await fetch('/api/data') - Network accessline 159
async function loadData() { const [userRes, postsRes] = await Promise.all([ fetch('/api/user'), - Network accessline 160
const [userRes, postsRes] = await Promise.all([ fetch('/api/user'), fetch('/api/posts') - Network accessline 161
fetch('/api/user'), - Network accessline 162
fetch('/api/posts') - Network accessline 182
// Context available here await fetch(...) // Suspends execution - Network accessline 183
await fetch(...) // Suspends execution - Network accessline 190
## Reference - [Vue.js Script Setup - defineExpose](https://vuejs.org/api/sfc-script-setup.html#defineexpose) - Network accessline 191
- [Vue.js Script Setup - defineExpose](https://vuejs.org/api/sfc-script-setup.html#defineexpose) - Network accessline 192
- [Vue.js Async Components](https://vuejs.org/guide/components/async.html)
skills/vue-debug-guides/reference/define-model-default-value-sync.md
- Network accessline 137
## Reference - [Vue.js Component v-model](https://vuejs.org/guide/components/v-model.html) - Network accessline 138
- [Vue.js Component v-model](https://vuejs.org/guide/components/v-model.html) - Network accessline 139
- [Vue School - defineModel Guide](https://vueschool.io/articles/vuejs-tutorials/v-model-and-definemodel-a-comprehensive-guide-to-two-way-binding-in-vue-js-3/)
skills/vue-debug-guides/reference/defineEmits-must-be-top-level.md
- Network accessline 162
## Reference - [Vue.js SFC script setup](https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits) - Network accessline 163
- [Vue.js SFC script setup](https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits) - Network accessline 164
- [ESLint vue/valid-define-emits](https://eslint.vuejs.org/rules/valid-define-emits)
skills/vue-debug-guides/reference/defineEmits-no-runtime-and-type-mixed.md
- Network accessline 168
## Reference - [Vue.js SFC script setup - defineEmits](https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits) - Network accessline 169
- [Vue.js SFC script setup - defineEmits](https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits) - Network accessline 170
- [Vue.js TypeScript with Composition API](https://vuejs.org/guide/typescript/composition-api.html#typing-component-emits)
skills/vue-debug-guides/reference/definemodel-object-mutation-no-emit.md
- Network accessline 145
## Reference - [Vue.js Component v-model](https://vuejs.org/guide/components/v-model.html) - Network accessline 146
- [Vue.js Component v-model](https://vuejs.org/guide/components/v-model.html) - Network accessline 147
- [GitHub Discussion: defineModel with objects](https://github.com/orgs/vuejs/discussions/10538) - Network accessline 148
- [SIMPL Engineering: Vue defineModel Pitfalls](https://engineering.simpl.de/post/vue_definemodel/)
skills/vue-debug-guides/reference/dom-update-timing-nexttick.md
- Network accessline 88
## Reference - [Vue.js Reactivity Fundamentals - DOM Update Timing](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#dom-update-timing) - Network accessline 89
- [Vue.js Reactivity Fundamentals - DOM Update Timing](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#dom-update-timing) - Network accessline 90
- [Vue.js nextTick API](https://vuejs.org/api/general.html#nexttick)
skills/vue-debug-guides/reference/dynamic-argument-constraints.md
- Network accessline 51
// Simple string variable const attributeName = ref('href') const url = ref('https://vuejs.org') - Network accessline 53
const url = ref('https://vuejs.org') - Network accessline 107
// Match the lowercase used in template const attrname = ref('href') const url = ref('https://vuejs.org') - Network accessline 108
const attrname = ref('href') const url = ref('https://vuejs.org') return { attrname, url } - Network accessline 109
const url = ref('https://vuejs.org') - Network accessline 144
## Reference - [Vue.js Template Syntax - Dynamic Arguments](https://vuejs.org/guide/essentials/template-syntax.html#dynamic-arguments) - Network accessline 145
- [Vue.js Template Syntax - Dynamic Arguments](https://vuejs.org/guide/essentials/template-syntax.html#dynamic-arguments) - Network accessline 146
- [Vue.js Template Syntax - Dynamic Argument Value Constraints](https://vuejs.org/guide/essentials/template-syntax.html#dynamic-argument-value-constraints)
skills/vue-debug-guides/reference/dynamic-component-registration-vite.md
- Network accessline 145
## Reference - [Vite - Glob Import](https://vitejs.dev/guide/features.html#glob-import) - Network accessline 146
- [Vite - Glob Import](https://vitejs.dev/guide/features.html#glob-import) - Network accessline 147
- [Vue.js Component Registration](https://vuejs.org/guide/components/registration.html)
skills/vue-debug-guides/reference/event-modifier-order-matters.md
skills/vue-debug-guides/reference/exact-modifier-for-precise-shortcuts.md
skills/vue-debug-guides/reference/fallthrough-attrs-overwrite-vue3.md
- Network accessline 157
- [Fallthrough Attributes](https://vuejs.org/guide/components/attrs.html) - Network accessline 158
- [Vue 3 Migration Guide - Attribute Coercion Behavior](https://v3-migration.vuejs.org/breaking-changes/) - Network accessline 159
- [Vue Fallthrough Attributes behaviour changes from Vue 2 to Vue 3](https://lukes.tips/posts/vue-3-fallthough-attributes-changes/)
skills/vue-debug-guides/reference/in-dom-template-parsing-caveats.md
- Network accessline 148
## Reference - [Vue.js - In-DOM Template Parsing Caveats](https://vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats) - Network accessline 149
- [Vue.js - In-DOM Template Parsing Caveats](https://vuejs.org/guide/essentials/component-basics.html#in-dom-template-parsing-caveats)
skills/vue-debug-guides/reference/inheritattrs-false-for-wrapper-components.md
- Network accessline 229
- [Fallthrough Attributes - Disabling Attribute Inheritance](https://vuejs.org/guide/components/attrs.html#disabling-attribute-inheritance) - Network accessline 230
- [Build Advanced Components in Vue 3 using $attrs](https://www.thisdot.co/blog/build-advanced-components-in-vue-3-using-usdattrs)
skills/vue-debug-guides/reference/keepalive-router-nested-double-mount.md
- Network accessline 219
## Reference - [Vue Router Issue #626: keep-alive in nested route mounted twice](https://github.com/vuejs/router/issues/626) - Network accessline 220
- [Vue Router Issue #626: keep-alive in nested route mounted twice](https://github.com/vuejs/router/issues/626) - Network accessline 221
- [GitHub: vue3-keep-alive-component workaround](https://github.com/emiyalee1005/vue3-keep-alive-component) - Network accessline 222
- [Vue.js KeepAlive Documentation](https://vuejs.org/guide/built-ins/keep-alive.html)
skills/vue-debug-guides/reference/keepalive-transition-memory-leak.md
- Network accessline 141
## Reference - [GitHub Issue #9842: Memory leak with transition and keep-alive](https://github.com/vuejs/vue/issues/9842) - Network accessline 142
- [GitHub Issue #9842: Memory leak with transition and keep-alive](https://github.com/vuejs/vue/issues/9842) - Network accessline 143
- [GitHub Issue #9840: Memory leak with transition and keep-alive](https://github.com/vuejs/vue/issues/9840) - Network accessline 144
- [Vue.js KeepAlive Documentation](https://vuejs.org/guide/built-ins/keep-alive.html)
skills/vue-debug-guides/reference/keyup-modifier-timing.md
- Network accessline 135
## Reference - [Vue.js Event Handling - Key Modifiers](https://vuejs.org/guide/essentials/event-handling.html#key-modifiers) - Network accessline 136
- [Vue.js Event Handling - Key Modifiers](https://vuejs.org/guide/essentials/event-handling.html#key-modifiers) - Network accessline 137
- [Vue.js Event Handling - System Modifier Keys](https://vuejs.org/guide/essentials/event-handling.html#system-modifier-keys)
skills/vue-debug-guides/reference/lifecycle-dom-access-timing.md
- Network accessline 213
## Reference - [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html) - Network accessline 214
- [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html) - Network accessline 215
- [Vue.js Template Refs](https://vuejs.org/guide/essentials/template-refs.html) - Network accessline 216
- [Vue.js nextTick](https://vuejs.org/api/general.html#nexttick)
skills/vue-debug-guides/reference/lifecycle-hooks-synchronous-registration.md
- Network accessline 154
## Reference - [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html) - Network accessline 155
- [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html) - Network accessline 156
- [Composition API Lifecycle Hooks](https://vuejs.org/api/composition-api-lifecycle.html)
skills/vue-debug-guides/reference/lifecycle-ssr-awareness.md
- Network accessline 181
## Reference - [Vue.js SSR Guide](https://vuejs.org/guide/scaling-up/ssr.html) - Network accessline 182
- [Vue.js SSR Guide](https://vuejs.org/guide/scaling-up/ssr.html) - Network accessline 183
- [Nuxt.js Lifecycle](https://nuxt.com/docs/api/composables/use-nuxt-app#lifecycle-hooks) - Network accessline 184
- [Vue SSR Hydration](https://vuejs.org/guide/scaling-up/ssr.html#client-hydration)
skills/vue-debug-guides/reference/local-components-not-in-descendants.md
- Network accessline 150
## Reference - [Vue.js Component Registration - Local Registration](https://vuejs.org/guide/components/registration.html#local-registration) - Network accessline 151
- [Vue.js Component Registration - Local Registration](https://vuejs.org/guide/components/registration.html#local-registration)
skills/vue-debug-guides/reference/mount-return-value.md
- Network accessline 86
## Reference - [Vue.js - Mounting the App](https://vuejs.org/guide/essentials/application.html#mounting-the-app) - Network accessline 87
- [Vue.js - Mounting the App](https://vuejs.org/guide/essentials/application.html#mounting-the-app) - Network accessline 88
- [Vue.js Application API - mount()](https://vuejs.org/api/application.html#app-mount)
skills/vue-debug-guides/reference/multi-root-component-class-attrs.md
skills/vue-debug-guides/reference/native-event-collision-with-emits.md
- Network accessline 160
## Reference - [Vue.js Component Events](https://vuejs.org/guide/components/events.html) - Network accessline 161
- [Vue.js Component Events](https://vuejs.org/guide/components/events.html) - Network accessline 162
- [Vue.js Fallthrough Attributes](https://vuejs.org/guide/components/attrs.html)
skills/vue-debug-guides/reference/no-passive-with-prevent.md
- Network accessline 139
## Reference - [Vue.js Event Handling - Event Modifiers](https://vuejs.org/guide/essentials/event-handling.html#event-modifiers) - Network accessline 140
- [Vue.js Event Handling - Event Modifiers](https://vuejs.org/guide/essentials/event-handling.html#event-modifiers) - Network accessline 141
- [MDN - Improving scroll performance with passive listeners](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#improving_scrolling_performance_with_passive_listeners)
skills/vue-debug-guides/reference/no-v-if-with-v-for.md
- Network accessline 133
## Reference - [Vue.js Style Guide - Avoid v-if with v-for](https://vuejs.org/style-guide/rules-essential.html#avoid-v-if-with-v-for) - Network accessline 134
- [Vue.js Style Guide - Avoid v-if with v-for](https://vuejs.org/style-guide/rules-essential.html#avoid-v-if-with-v-for) - Network accessline 135
- [Vue 3 Migration Guide - v-if vs v-for Precedence](https://v3-migration.vuejs.org/breaking-changes/v-if-v-for) - Network accessline 136
- [ESLint Plugin Vue - no-use-v-if-with-v-for](https://eslint.vuejs.org/rules/no-use-v-if-with-v-for)
skills/vue-debug-guides/reference/perf-computed-object-stability.md
- Network accessline 155
## Reference - [Vue.js Performance - Computed Stability](https://vuejs.org/guide/best-practices/performance.html#computed-stability) - Network accessline 156
- [Vue.js Performance - Computed Stability](https://vuejs.org/guide/best-practices/performance.html#computed-stability) - Network accessline 157
- [Vue.js Computed Properties](https://vuejs.org/guide/essentials/computed.html)
skills/vue-debug-guides/reference/perf-props-stability-update-optimization.md
skills/vue-debug-guides/reference/plugin-global-properties-sparingly.md
skills/vue-debug-guides/reference/plugin-install-before-mount.md
- Network accessline 122
- [Vue.js Plugins Documentation](https://vuejs.org/guide/reusability/plugins.html) - Network accessline 123
- [Vue.js Application API](https://vuejs.org/api/application.html) - Network accessline 124
- [Vue 3 Migration Guide - Global API](https://v3-migration.vuejs.org/breaking-changes/global-api.html)
skills/vue-debug-guides/reference/plugin-prefer-provide-inject-over-global-properties.md
- Network accessline 118
- [Vue.js Plugins Documentation](https://vuejs.org/guide/reusability/plugins.html) - Network accessline 119
- [Vue.js Provide/Inject](https://vuejs.org/guide/components/provide-inject.html) - Network accessline 120
- [TypeScript with Options API](https://vuejs.org/guide/typescript/options-api.html)
skills/vue-debug-guides/reference/plugin-typescript-type-augmentation.md
- Network accessline 155
- [Vue.js TypeScript with Options API](https://vuejs.org/guide/typescript/options-api.html) - Network accessline 156
- [TypeScript Module Augmentation](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation) - Network accessline 157
- [Vue.js Plugins Documentation](https://vuejs.org/guide/reusability/plugins.html)
skills/vue-debug-guides/reference/prop-defineprops-scope-limitation.md
skills/vue-debug-guides/reference/provide-inject-debugging-challenges.md
skills/vue-debug-guides/reference/provide-inject-default-value-factory.md
- Network accessline 199
// TypeScript understands the factory return type const config = inject(ConfigKey, () => ({ apiUrl: 'https://api.example.com', - Network accessline 200
const config = inject(ConfigKey, () => ({ apiUrl: 'https://api.example.com', debug: false, - Network accessline 201
apiUrl: 'https://api.example.com', - Network accessline 242
## Reference - [Vue.js inject() API Reference](https://vuejs.org/api/composition-api-dependency-injection.html#inject) - Network accessline 243
- [Vue.js inject() API Reference](https://vuejs.org/api/composition-api-dependency-injection.html#inject) - Network accessline 244
- [Vue.js Provide/Inject Guide](https://vuejs.org/guide/components/provide-inject.html)
skills/vue-debug-guides/reference/provide-inject-reactivity-not-automatic.md
- Network accessline 223
## Reference - [Vue.js Provide/Inject - Working with Reactivity](https://vuejs.org/guide/components/provide-inject.html#working-with-reactivity) - Network accessline 224
- [Vue.js Provide/Inject - Working with Reactivity](https://vuejs.org/guide/components/provide-inject.html#working-with-reactivity) - Network accessline 225
- [How to make provide/inject reactive - LogRocket Blog](https://blog.logrocket.com/how-to-make-provide-inject-reactive/) - Network accessline 226
- [GitHub Issue: Inject/Provide is not reactive](https://github.com/vuejs/vue/issues/7017)
skills/vue-debug-guides/reference/provide-inject-synchronous-setup.md
- Network accessline 52
const response = await fetch('/api/config') - Network accessline 233
## Reference - [Vue.js Composition API - provide()](https://vuejs.org/api/composition-api-dependency-injection.html#provide) - Network accessline 234
- [Vue.js Composition API - provide()](https://vuejs.org/api/composition-api-dependency-injection.html#provide) - Network accessline 235
- [Vue.js Provide/Inject Guide](https://vuejs.org/guide/components/provide-inject.html)
skills/vue-debug-guides/reference/reactive-destructuring.md
- Network accessline 87
## Reference - [Vue.js Reactivity Fundamentals - reactive()](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#reactive) - Network accessline 88
- [Vue.js Reactivity Fundamentals - reactive()](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#reactive) - Network accessline 89
- [Vue.js Reactivity API - toRefs()](https://vuejs.org/api/reactivity-utilities.html#torefs)
skills/vue-debug-guides/reference/reactivity-debugging-hooks.md
- Network accessline 129
## Reference - [Vue.js Reactivity in Depth - Debugging](https://vuejs.org/guide/extras/reactivity-in-depth.html#reactivity-debugging) - Network accessline 130
- [Vue.js Reactivity in Depth - Debugging](https://vuejs.org/guide/extras/reactivity-in-depth.html#reactivity-debugging) - Network accessline 131
- [Vue.js computed() API](https://vuejs.org/api/reactivity-core.html#computed) - Network accessline 132
- [Vue.js onRenderTracked()](https://vuejs.org/api/composition-api-lifecycle.html#onrendertracked)
skills/vue-debug-guides/reference/reactivity-markraw-for-non-reactive.md
- Network accessline 65
// CORRECT: Large static data const geoJsonData = markRaw(await fetch('/huge-geojson.json').then(r => r.json())) - Network accessline 66
const geoJsonData = markRaw(await fetch('/huge-geojson.json').then(r => r.json())) - Network accessline 146
## Reference - [Vue.js markRaw() API](https://vuejs.org/api/reactivity-advanced.html#markraw) - Network accessline 147
- [Vue.js markRaw() API](https://vuejs.org/api/reactivity-advanced.html#markraw) - Network accessline 148
- [Vue.js Reducing Reactivity Overhead](https://vuejs.org/guide/best-practices/performance.html#reduce-reactivity-overhead-for-large-immutable-structures) - Network accessline 149
- [Vue.js Reactivity in Depth](https://vuejs.org/guide/extras/reactivity-in-depth.html)
skills/vue-debug-guides/reference/reactivity-proxy-identity-hazard.md
- Network accessline 94
## Reference - [Vue.js Reactivity in Depth](https://vuejs.org/guide/extras/reactivity-in-depth.html) - Network accessline 95
- [Vue.js Reactivity in Depth](https://vuejs.org/guide/extras/reactivity-in-depth.html) - Network accessline 96
- [Vue.js toRaw() API](https://vuejs.org/api/reactivity-advanced.html#toraw)
skills/vue-debug-guides/reference/reactivity-same-tick-batching.md
- Network accessline 163
## Reference - [Vue.js Reactivity in Depth](https://vuejs.org/guide/extras/reactivity-in-depth.html) - Network accessline 164
- [Vue.js Reactivity in Depth](https://vuejs.org/guide/extras/reactivity-in-depth.html) - Network accessline 165
- [Vue.js Watchers - Callback Flush Timing](https://vuejs.org/guide/essentials/watchers.html#callback-flush-timing) - Network accessline 166
- [Vue.js nextTick()](https://vuejs.org/api/general.html#nexttick)
skills/vue-debug-guides/reference/ref-value-access.md
skills/vue-debug-guides/reference/refs-in-collections-need-value.md
- Network accessline 80
## Reference - [Vue.js Reactivity Fundamentals - Caveat in Arrays and Collections](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#caveat-in-arrays-and-collections) - Network accessline 81
- [Vue.js Reactivity Fundamentals - Caveat in Arrays and Collections](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#caveat-in-arrays-and-collections)
skills/vue-debug-guides/reference/render-function-avoid-internal-vnode-properties.md
- Network accessline 149
## Reference - [Vue.js Render Function APIs](https://vuejs.org/api/render-function.html) - Network accessline 150
- [Vue.js Render Function APIs](https://vuejs.org/api/render-function.html) - Network accessline 151
- [Vue.js Render Functions - The Virtual DOM](https://vuejs.org/guide/extras/render-function.html#the-virtual-dom)
skills/vue-debug-guides/reference/render-function-vnodes-must-be-unique.md
- Network accessline 132
## Reference - [Vue.js Render Functions - Vnodes Must Be Unique](https://vuejs.org/guide/extras/render-function.html#vnodes-must-be-unique) - Network accessline 133
- [Vue.js Render Functions - Vnodes Must Be Unique](https://vuejs.org/guide/extras/render-function.html#vnodes-must-be-unique)
skills/vue-debug-guides/reference/rendering-render-function-h-import-vue3.md
- Network accessline 146
## Reference - [Vue 3 Migration Guide - Render Function API](https://v3-migration.vuejs.org/breaking-changes/render-function-api.html) - Network accessline 147
- [Vue 3 Migration Guide - Render Function API](https://v3-migration.vuejs.org/breaking-changes/render-function-api.html) - Network accessline 148
- [Vue.js Render Functions & JSX](https://vuejs.org/guide/extras/render-function.html)
skills/vue-debug-guides/reference/rendering-render-function-return-from-setup.md
- Network accessline 146
## Reference - [Vue.js Render Functions with Composition API](https://vuejs.org/guide/extras/render-function.html#render-functions-jsx) - Network accessline 147
- [Vue.js Render Functions with Composition API](https://vuejs.org/guide/extras/render-function.html#render-functions-jsx) - Network accessline 148
- [Vue.js Composition API setup()](https://vuejs.org/api/composition-api-setup.html)
skills/vue-debug-guides/reference/rendering-render-function-slots-as-functions.md
- Network accessline 166
## Reference - [Vue.js Render Functions - Passing Slots](https://vuejs.org/guide/extras/render-function.html#passing-slots) - Network accessline 167
- [Vue.js Render Functions - Passing Slots](https://vuejs.org/guide/extras/render-function.html#passing-slots) - Network accessline 168
- [Vue.js Render Functions - Children](https://vuejs.org/guide/extras/render-function.html#children)
skills/vue-debug-guides/reference/rendering-resolve-component-for-string-names.md
- Network accessline 229
## Reference - [Vue 3 Migration - Render Function API](https://v3-migration.vuejs.org/breaking-changes/render-function-api.html) - Network accessline 230
- [Vue 3 Migration - Render Function API](https://v3-migration.vuejs.org/breaking-changes/render-function-api.html) - Network accessline 231
- [Vue.js Render Function API - resolveComponent](https://vuejs.org/api/render-function.html#resolvecomponent)
skills/vue-debug-guides/reference/select-initial-value-ios-bug.md
skills/vue-debug-guides/reference/self-referencing-component-name.md
skills/vue-debug-guides/reference/sfc-named-exports-forbidden.md
- Network accessline 182
## Reference - [Vue.js SFC Specification](https://vuejs.org/api/sfc-spec.html) - Network accessline 183
- [Vue.js SFC Specification](https://vuejs.org/api/sfc-spec.html) - Network accessline 184
- [Vue.js Composition API - Composables](https://vuejs.org/guide/reusability/composables.html)
skills/vue-debug-guides/reference/sfc-scoped-css-child-component-styling.md
- Network accessline 154
## Reference - [Vue.js Scoped CSS - Deep Selectors](https://vuejs.org/api/sfc-css-features.html#deep-selectors) - Network accessline 155
- [Vue.js Scoped CSS - Deep Selectors](https://vuejs.org/api/sfc-css-features.html#deep-selectors) - Network accessline 156
- [Vue Loader Scoped CSS](https://vue-loader.vuejs.org/guide/scoped-css.html)
skills/vue-debug-guides/reference/sfc-scoped-css-dynamic-content.md
- Network accessline 191
## Reference - [Vue.js Scoped CSS](https://vuejs.org/api/sfc-css-features.html#scoped-css) - Network accessline 192
- [Vue.js Scoped CSS](https://vuejs.org/api/sfc-css-features.html#scoped-css) - Network accessline 193
- [GitHub Issue: Scoped CSS not applied for programmatically added elements](https://github.com/vuejs/vue/issues/7649)
skills/vue-debug-guides/reference/sfc-scoped-css-slot-content.md
- Network accessline 240
## Reference - [Vue.js Scoped CSS - Slotted Selectors](https://vuejs.org/api/sfc-css-features.html#slotted-selectors) - Network accessline 241
- [Vue.js Scoped CSS - Slotted Selectors](https://vuejs.org/api/sfc-css-features.html#slotted-selectors) - Network accessline 242
- [Vue.js Deep Selectors](https://vuejs.org/api/sfc-css-features.html#deep-selectors)
skills/vue-debug-guides/reference/sfc-script-setup-reactivity.md
- Network accessline 192
## Reference - [Vue.js Reactivity Fundamentals](https://vuejs.org/guide/essentials/reactivity-fundamentals.html) - Network accessline 193
- [Vue.js Reactivity Fundamentals](https://vuejs.org/guide/essentials/reactivity-fundamentals.html) - Network accessline 194
- [Vue.js ref()](https://vuejs.org/api/reactivity-core.html#ref) - Network accessline 195
- [Vue.js reactive()](https://vuejs.org/api/reactivity-core.html#reactive)
skills/vue-debug-guides/reference/slot-forwarding-to-child-components.md
- Network accessline 141
## Reference - [Vue Land FAQ - Forwarding Slots](https://vue-land.github.io/faq/forwarding-slots) - Network accessline 142
- [Vue Land FAQ - Forwarding Slots](https://vue-land.github.io/faq/forwarding-slots) - Network accessline 143
- [Vue.js Slots - Scoped Slots](https://vuejs.org/guide/components/slots.html#scoped-slots)
skills/vue-debug-guides/reference/slot-implicit-default-content.md
skills/vue-debug-guides/reference/slot-name-reserved-prop.md
skills/vue-debug-guides/reference/slot-named-scoped-explicit-default.md
skills/vue-debug-guides/reference/slot-render-scope-parent-only.md
skills/vue-debug-guides/reference/slot-v-slot-on-components-or-templates-only.md
skills/vue-debug-guides/reference/ssr-hydration-mismatch-causes.md
- Network accessline 277
## Reference - [Vue.js SSR Guide - Hydration Mismatch](https://vuejs.org/guide/scaling-up/ssr.html#hydration-mismatch) - Network accessline 278
- [Vue.js SSR Guide - Hydration Mismatch](https://vuejs.org/guide/scaling-up/ssr.html#hydration-mismatch) - Network accessline 279
- [Nuxt Hydration Best Practices](https://nuxt.com/docs/guide/best-practices/hydration) - Network accessline 280
- [data-allow-mismatch RFC](https://github.com/vuejs/core/pull/9562)
skills/vue-debug-guides/reference/ssr-platform-specific-apis.md
- Network accessline 159
// Fetch - works in both Node.js 18+ and browsers const response = await fetch('/api/data') - Network accessline 160
const response = await fetch('/api/data') - Network accessline 202
// app.js - Universal code uses API instead const config = await fetch('/api/config').then(r => r.json()) - Network accessline 203
const config = await fetch('/api/config').then(r => r.json()) - Network accessline 253
## Reference - [Vue.js SSR - Platform-Specific APIs](https://vuejs.org/guide/scaling-up/ssr.html#access-to-platform-specific-apis) - Network accessline 254
- [Vue.js SSR - Platform-Specific APIs](https://vuejs.org/guide/scaling-up/ssr.html#access-to-platform-specific-apis) - Network accessline 255
- [Nuxt ClientOnly Component](https://nuxt.com/docs/api/components/client-only) - Network accessline 256
- [MDN: Web APIs](https://developer.mozilla.org/en-US/docs/Web/API)
skills/vue-debug-guides/reference/state-ssr-cross-request-pollution.md
- Network accessline 273
## Reference - [Vue.js State Management - SSR Considerations](https://vuejs.org/guide/scaling-up/state-management.html#ssr-considerations) - Network accessline 274
- [Vue.js State Management - SSR Considerations](https://vuejs.org/guide/scaling-up/state-management.html#ssr-considerations) - Network accessline 275
- [Pinia SSR Guide](https://pinia.vuejs.org/ssr/) - Network accessline 276
- [Vue SSR Guide](https://vuejs.org/guide/scaling-up/ssr.html)
skills/vue-debug-guides/reference/suspense-no-builtin-error-handling.md
skills/vue-debug-guides/reference/suspense-ssr-hydration-issues.md
- Network accessline 156
- [Vue.js Suspense Documentation](https://vuejs.org/guide/built-ins/suspense) - Network accessline 157
- [Vue Issue #6638 - Suspense hydration](https://github.com/vuejs/core/issues/6638) - Network accessline 158
- [Vue Issue #7672 - defineAsyncComponent SSR](https://github.com/vuejs/core/issues/7672) - Network accessline 159
- [TanStack Query SSR Discussion](https://github.com/TanStack/query/discussions/4870)
skills/vue-debug-guides/reference/tailwind-dynamic-class-generation.md
skills/vue-debug-guides/reference/teleport-scoped-styles-limitation.md
- Network accessline 189
## Reference - [Vue.js SFC CSS Features - Scoped CSS](https://vuejs.org/api/sfc-css-features.html#scoped-css) - Network accessline 190
- [Vue.js SFC CSS Features - Scoped CSS](https://vuejs.org/api/sfc-css-features.html#scoped-css) - Network accessline 191
- [GitHub Issue #2047 - Scoped styles and teleport](https://github.com/vuejs/core/issues/2047)
skills/vue-debug-guides/reference/teleport-ssr-hydration.md
- Network accessline 149
## Reference - [Vue.js SSR - Teleports](https://vuejs.org/guide/scaling-up/ssr.html#teleports) - Network accessline 150
- [Vue.js SSR - Teleports](https://vuejs.org/guide/scaling-up/ssr.html#teleports) - Network accessline 151
- [Element Plus SSR Guide](https://element-plus.org/en-US/guide/ssr.html) - Network accessline 152
- [Nuxt ClientOnly Component](https://nuxt.com/docs/api/components/client-only)
skills/vue-debug-guides/reference/teleport-target-must-exist.md
- Network accessline 111
## Reference - [Vue.js Teleport - Using with Vue-rendered Targets](https://vuejs.org/guide/built-ins/teleport.html#using-with-vue-rendered-targets) - Network accessline 112
- [Vue.js Teleport - Using with Vue-rendered Targets](https://vuejs.org/guide/built-ins/teleport.html#using-with-vue-rendered-targets) - Network accessline 113
- [Vue.js Teleport - Deferred Teleport](https://vuejs.org/guide/built-ins/teleport.html#deferred-teleport)
skills/vue-debug-guides/reference/template-expressions-restrictions.md
- Network accessline 112
## Reference - [Vue.js Template Syntax - Using JavaScript Expressions](https://vuejs.org/guide/essentials/template-syntax.html#using-javascript-expressions) - Network accessline 113
- [Vue.js Template Syntax - Using JavaScript Expressions](https://vuejs.org/guide/essentials/template-syntax.html#using-javascript-expressions) - Network accessline 114
- [Vue.js Conditional Rendering](https://vuejs.org/guide/essentials/conditional.html)
skills/vue-debug-guides/reference/template-functions-no-side-effects.md
- Network accessline 38
// BAD: Async operation in template async function fetchUserName() { const res = await fetch('/api/user') // Side effect! - Network accessline 39
async function fetchUserName() { const res = await fetch('/api/user') // Side effect! return (await res.json()).name - Network accessline 40
const res = await fetch('/api/user') // Side effect! - Network accessline 101
// Fetch data in lifecycle hook onMounted(async () => { const res = await fetch('/api/user') - Network accessline 102
onMounted(async () => { const res = await fetch('/api/user') userName.value = (await res.json()).name - Network accessline 103
const res = await fetch('/api/user') - Network accessline 185
## Reference - [Vue.js Template Syntax - Calling Functions](https://vuejs.org/guide/essentials/template-syntax.html#calling-functions) - Network accessline 186
- [Vue.js Template Syntax - Calling Functions](https://vuejs.org/guide/essentials/template-syntax.html#calling-functions) - Network accessline 187
- [Vue.js Computed Properties](https://vuejs.org/guide/essentials/computed.html)
skills/vue-debug-guides/reference/template-ref-null-with-v-if.md
skills/vue-debug-guides/reference/template-ref-unwrapping-top-level.md
- Network accessline 103
## Reference - [Vue.js Reactivity Fundamentals - Caveat when Unwrapping in Templates](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#caveat-when-unwrapping-in-templates) - Network accessline 104
- [Vue.js Reactivity Fundamentals - Caveat when Unwrapping in Templates](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#caveat-when-unwrapping-in-templates)
skills/vue-debug-guides/reference/template-ref-v-for-order.md
skills/vue-debug-guides/reference/textarea-no-interpolation.md
skills/vue-debug-guides/reference/transition-group-flip-inline-elements.md
- Network accessline 150
## Reference - [Vue.js TransitionGroup Move Transitions](https://vuejs.org/guide/built-ins/transition-group.html#move-transitions) - Network accessline 151
- [Vue.js TransitionGroup Move Transitions](https://vuejs.org/guide/built-ins/transition-group.html#move-transitions) - Network accessline 152
- [MDN CSS Transform - Formal Definition](https://developer.mozilla.org/en-US/docs/Web/CSS/transform#formal_definition)
skills/vue-debug-guides/reference/transition-group-move-animation-position-absolute.md
- Network accessline 128
## Reference - [Vue.js TransitionGroup Move Transitions](https://vuejs.org/guide/built-ins/transition-group.html#move-transitions) - Network accessline 129
- [Vue.js TransitionGroup Move Transitions](https://vuejs.org/guide/built-ins/transition-group.html#move-transitions) - Network accessline 130
- [FLIP Animation Technique](https://aerotwist.com/blog/flip-your-animations/)
skills/vue-debug-guides/reference/transition-group-no-default-wrapper-vue3.md
- Network accessline 150
## Reference - [Vue 3 Migration Guide - TransitionGroup Root Element](https://v3-migration.vuejs.org/breaking-changes/transition-group.html) - Network accessline 151
- [Vue 3 Migration Guide - TransitionGroup Root Element](https://v3-migration.vuejs.org/breaking-changes/transition-group.html) - Network accessline 152
- [Vue.js TransitionGroup](https://vuejs.org/guide/built-ins/transition-group.html)
skills/vue-debug-guides/reference/transition-js-hooks-done-callback.md
- Network accessline 249
## Reference - [Vue.js Transition - JavaScript Hooks](https://vuejs.org/guide/built-ins/transition.html#javascript-hooks) - Network accessline 250
- [Vue.js Transition - JavaScript Hooks](https://vuejs.org/guide/built-ins/transition.html#javascript-hooks) - Network accessline 251
- [GSAP with Vue](https://gsap.com/resources/vue/)
skills/vue-debug-guides/reference/transition-nested-duration.md
- Network accessline 181
## Reference - [Vue.js Transition - Nested Transitions](https://vuejs.org/guide/built-ins/transition.html#nested-transitions-and-explicit-transition-durations) - Network accessline 182
- [Vue.js Transition - Nested Transitions](https://vuejs.org/guide/built-ins/transition.html#nested-transitions-and-explicit-transition-durations)
skills/vue-debug-guides/reference/transition-reusable-scoped-style.md
- Network accessline 243
## Reference - [Vue.js Reusable Transitions](https://vuejs.org/guide/built-ins/transition.html#reusable-transitions) - Network accessline 244
- [Vue.js Reusable Transitions](https://vuejs.org/guide/built-ins/transition.html#reusable-transitions) - Network accessline 245
- [Vue.js Scoped CSS](https://vuejs.org/api/sfc-css-features.html#scoped-css)
skills/vue-debug-guides/reference/transition-router-view-appear.md
- Network accessline 191
## Reference - [Vue Router Transitions](https://router.vuejs.org/guide/advanced/transitions.html) - Network accessline 192
- [Vue Router Transitions](https://router.vuejs.org/guide/advanced/transitions.html) - Network accessline 193
- [Vue.js Transition appear](https://vuejs.org/guide/built-ins/transition.html#transition-on-appear)
skills/vue-debug-guides/reference/transition-type-when-mixed.md
skills/vue-debug-guides/reference/transition-unmount-hook-timing.md
- Network accessline 111
onMounted(() => { fetch('/api/data', { signal: abortController.signal }) - Network accessline 112
fetch('/api/data', { signal: abortController.signal }) - Network accessline 146
## Reference - [Vue.js GitHub Issue #6260](https://github.com/vuejs/core/issues/6260) - Network accessline 147
- [Vue.js GitHub Issue #6260](https://github.com/vuejs/core/issues/6260) - Network accessline 148
- [Vue.js Transition](https://vuejs.org/guide/built-ins/transition.html) - Network accessline 149
- [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html)
skills/vue-debug-guides/reference/ts-defineprops-boolean-default-false.md
- Network accessline 222
## Reference - [Vue.js Props - Boolean Casting](https://vuejs.org/guide/components/props.html#boolean-casting) - Network accessline 223
- [Vue.js Props - Boolean Casting](https://vuejs.org/guide/components/props.html#boolean-casting) - Network accessline 224
- [GitHub Issue: Boolean props default to false](https://github.com/vuejs/core/issues/8576) - Network accessline 225
- [TypeScript Vue 3 Props](https://madewithlove.com/blog/typescript-vue-3-and-strongly-typed-props/)
skills/vue-debug-guides/reference/ts-defineprops-imported-types-limitations.md
- Network accessline 278
## Reference - [Vue.js TypeScript with Composition API](https://vuejs.org/guide/typescript/composition-api.html) - Network accessline 279
- [Vue.js TypeScript with Composition API](https://vuejs.org/guide/typescript/composition-api.html) - Network accessline 280
- [GitHub Issue: defineProps with imported interfaces](https://github.com/vuejs/core/issues/8612) - Network accessline 281
- [GitHub Issue: Union types in defineProps](https://github.com/vuejs/core/issues/5804)
skills/vue-debug-guides/reference/ts-event-handler-explicit-typing.md
- Network accessline 210
## Reference - [Vue.js TypeScript with Composition API - Event Handlers](https://vuejs.org/guide/typescript/composition-api.html#typing-event-handlers) - Network accessline 211
- [Vue.js TypeScript with Composition API - Event Handlers](https://vuejs.org/guide/typescript/composition-api.html#typing-event-handlers) - Network accessline 212
- [MDN Event Reference](https://developer.mozilla.org/en-US/docs/Web/Events) - Network accessline 213
- [TypeScript DOM Types](https://github.com/microsoft/TypeScript/blob/main/lib/lib.dom.d.ts)
skills/vue-debug-guides/reference/ts-reactive-no-generic-argument.md
- Network accessline 193
## Reference - [Vue.js TypeScript with Composition API - Typing reactive()](https://vuejs.org/guide/typescript/composition-api.html#typing-reactive) - Network accessline 194
- [Vue.js TypeScript with Composition API - Typing reactive()](https://vuejs.org/guide/typescript/composition-api.html#typing-reactive) - Network accessline 195
- [GitHub Issue: ref with generic type](https://github.com/vuejs/core/discussions/9564) - Network accessline 196
- [Vue TypeScript Caveats Gist](https://gist.github.com/LinusBorg/e041ff635994b50b7cec9383c3a067f1)
skills/vue-debug-guides/reference/ts-shallowref-for-dynamic-components.md
- Network accessline 216
- [Vue.js Reactivity in Depth - Reducing Reactivity Overhead](https://vuejs.org/guide/extras/reactivity-in-depth.html#reducing-reactivity-overhead-for-large-immutable-structures) - Network accessline 217
- [Vue.js API - shallowRef](https://vuejs.org/api/reactivity-advanced.html#shallowref) - Network accessline 218
- [Vue.js API - markRaw](https://vuejs.org/api/reactivity-advanced.html#markraw)
skills/vue-debug-guides/reference/ts-template-ref-null-handling.md
- Network accessline 247
## Reference - [Vue.js TypeScript with Composition API - Template Refs](https://vuejs.org/guide/typescript/composition-api.html#typing-template-refs) - Network accessline 248
- [Vue.js TypeScript with Composition API - Template Refs](https://vuejs.org/guide/typescript/composition-api.html#typing-template-refs) - Network accessline 249
- [Vue.js Template Refs](https://vuejs.org/guide/essentials/template-refs.html)
skills/vue-debug-guides/reference/ts-template-type-casting.md
skills/vue-debug-guides/reference/ts-withdefaults-mutable-factory-function.md
- Network accessline 169
## Reference - [Vue.js TypeScript with Composition API - Default Props](https://vuejs.org/guide/typescript/composition-api.html#props-default-values) - Network accessline 170
- [Vue.js TypeScript with Composition API - Default Props](https://vuejs.org/guide/typescript/composition-api.html#props-default-values) - Network accessline 171
- [Vue RFC - Reactive Props Destructure](https://github.com/vuejs/rfcs/discussions/502)
skills/vue-debug-guides/reference/undeclared-emits-double-firing.md
- Network accessline 192
## Reference - [Vue 3 Migration - emits Option](https://v3-migration.vuejs.org/breaking-changes/emits-option) - Network accessline 193
- [Vue 3 Migration - emits Option](https://v3-migration.vuejs.org/breaking-changes/emits-option) - Network accessline 194
- [Vue.js Component Events](https://vuejs.org/guide/components/events.html) - Network accessline 195
- [Vue.js Fallthrough Attributes](https://vuejs.org/guide/components/attrs.html)
skills/vue-debug-guides/reference/use-template-ref-vue35.md
- Network accessline 156
## Reference - [Vue.js Template Refs - Composition API](https://vuejs.org/guide/essentials/template-refs.html#accessing-the-refs) - Network accessline 157
- [Vue.js Template Refs - Composition API](https://vuejs.org/guide/essentials/template-refs.html#accessing-the-refs) - Network accessline 158
- [Vue 3.5 Release Notes](https://blog.vuejs.org/posts/vue-3-5)
skills/vue-debug-guides/reference/v-else-must-follow-v-if.md
skills/vue-debug-guides/reference/v-for-component-props.md
skills/vue-debug-guides/reference/v-for-computed-reverse-sort.md
- Network accessline 85
## Reference - [Vue.js List Rendering - Displaying Filtered/Sorted Results](https://vuejs.org/guide/essentials/list.html#displaying-filtered-sorted-results) - Network accessline 86
- [Vue.js List Rendering - Displaying Filtered/Sorted Results](https://vuejs.org/guide/essentials/list.html#displaying-filtered-sorted-results)
skills/vue-debug-guides/reference/v-for-key-attribute.md
- Network accessline 88
## Reference - [Vue.js List Rendering - Key](https://vuejs.org/guide/essentials/list.html#maintaining-state-with-key) - Network accessline 89
- [Vue.js List Rendering - Key](https://vuejs.org/guide/essentials/list.html#maintaining-state-with-key) - Network accessline 90
- [Vue 3 Migration Guide - Key on Template](https://v3-migration.vuejs.org/breaking-changes/key-attribute)
skills/vue-debug-guides/reference/v-for-range-starts-at-one.md
skills/vue-debug-guides/reference/v-if-null-check-order.md
- Network accessline 169
## Reference - [Vue.js Conditional Rendering](https://vuejs.org/guide/essentials/conditional.html) - Network accessline 170
- [Vue.js Conditional Rendering](https://vuejs.org/guide/essentials/conditional.html) - Network accessline 171
- [MDN - Optional Chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining)
skills/vue-debug-guides/reference/v-model-ignores-html-attributes.md
skills/vue-debug-guides/reference/v-model-ime-composition.md
skills/vue-debug-guides/reference/v-model-number-modifier-behavior.md
skills/vue-debug-guides/reference/v-show-template-limitation.md
skills/vue-debug-guides/reference/watch-async-cleanup.md
- Network accessline 31
watch(searchQuery, async (query) => { if (query) { const response = await fetch(`/api/search?q=${query}`) - Network accessline 32
if (query) { const response = await fetch(`/api/search?q=${query}`) results.value = await response.json() // May overwrite newer results! - Network accessline 33
const response = await fetch(`/api/search?q=${query}`) - Network accessline 69
loading.value = true try { const response = await fetch(`/api/search?q=${query}`, { - Network accessline 70
try { const response = await fetch(`/api/search?q=${query}`, { signal: controller.signal - Network accessline 71
const response = await fetch(`/api/search?q=${query}`, { - Network accessline 97
fetch(`/api/users/${newId}`, { signal: controller.signal }) - Network accessline 178
## Reference - [Vue.js Watchers - Callback Flush Timing](https://vuejs.org/guide/essentials/watchers.html#callback-flush-timing) - Network accessline 179
- [Vue.js Watchers - Callback Flush Timing](https://vuejs.org/guide/essentials/watchers.html#callback-flush-timing) - Network accessline 180
- [Vue.js Watchers - Side Effect Cleanup](https://vuejs.org/api/reactivity-core.html#watcheffect)
skills/vue-debug-guides/reference/watch-async-creation-memory-leak.md
- Network accessline 49
// BAD: Watcher in Promise callback fetch('/api/config').then(() => { - Network accessline 50
fetch('/api/config').then(() => { - Network accessline 175
## Reference - [Vue.js Watchers - Stopping a Watcher](https://vuejs.org/guide/essentials/watchers.html#stopping-a-watcher) - Network accessline 176
- [Vue.js Watchers - Stopping a Watcher](https://vuejs.org/guide/essentials/watchers.html#stopping-a-watcher)
skills/vue-debug-guides/reference/watch-deep-same-object-reference.md
skills/vue-debug-guides/reference/watch-flush-timing.md
skills/vue-debug-guides/reference/watch-reactive-property-getter.md
skills/vue-debug-guides/reference/watcheffect-async-dependency-tracking.md
- Network accessline 31
// BAD: includeDetails is accessed after await - NOT TRACKED! watchEffect(async () => { const response = await fetch(`/api/users/${userId.value}`) - Network accessline 32
watchEffect(async () => { const response = await fetch(`/api/users/${userId.value}`) const data = await response.json() - Network accessline 33
const response = await fetch(`/api/users/${userId.value}`) - Network accessline 71
// Now these are tracked const response = await fetch(`/api/users/${id}`) - Network accessline 72
const response = await fetch(`/api/users/${id}`) - Network accessline 84
[userId, includeDetails], async ([id, withDetails]) => { const response = await fetch(`/api/users/${id}`) - Network accessline 85
async ([id, withDetails]) => { const response = await fetch(`/api/users/${id}`) const data = await response.json() - Network accessline 86
const response = await fetch(`/api/users/${id}`) - Network accessline 116
// Now safe to do async work const response = await fetch( - Network accessline 117
const response = await fetch( - Network accessline 171
## Reference - [Vue.js Watchers - watchEffect](https://vuejs.org/guide/essentials/watchers.html#watcheffect) - Network accessline 172
- [Vue.js Watchers - watchEffect](https://vuejs.org/guide/essentials/watchers.html#watcheffect) - Network accessline 173
- [Vue.js API - watchEffect](https://vuejs.org/api/reactivity-core.html#watcheffect)
skills/vue-debug-guides/reference/watcheffect-flush-post-for-refs.md
- Network accessline 174
## Reference - [Vue.js Watchers - Callback Flush Timing](https://vuejs.org/guide/essentials/watchers.html#callback-flush-timing) - Network accessline 175
- [Vue.js Watchers - Callback Flush Timing](https://vuejs.org/guide/essentials/watchers.html#callback-flush-timing) - Network accessline 176
- [Vue.js watchEffect API](https://vuejs.org/api/reactivity-core.html#watcheffect)
skills/vue-jsx-best-practices/reference/render-function-jsx-vue-vs-react.md
skills/vue-options-api-best-practices/reference/no-arrow-functions-in-lifecycle-hooks.md
- Network accessline 93
## Reference - [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html) - Network accessline 94
- [Vue.js Lifecycle Hooks](https://vuejs.org/guide/essentials/lifecycle.html) - Network accessline 95
- [Vue.js Options Lifecycle](https://vuejs.org/api/options-lifecycle.html)
skills/vue-options-api-best-practices/reference/no-arrow-functions-in-methods.md
- Network accessline 55
// Arrow functions ARE fine for callbacks INSIDE methods fetchData() { fetch('/api/data') - Network accessline 56
fetchData() { fetch('/api/data') .then(response => response.json()) - Network accessline 57
fetch('/api/data') - Network accessline 67
## Reference - [Vue.js Methods - Avoid Arrow Functions](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#methods) - Network accessline 68
- [Vue.js Methods - Avoid Arrow Functions](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#methods)
skills/vue-options-api-best-practices/reference/stateful-methods-lifecycle.md
- Network accessline 60
## Reference - [Vue.js Reactivity Fundamentals - Stateful Methods](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#stateful-methods) - Network accessline 61
- [Vue.js Reactivity Fundamentals - Stateful Methods](https://vuejs.org/guide/essentials/reactivity-fundamentals.html#stateful-methods)
skills/vue-options-api-best-practices/reference/ts-options-api-arrow-functions-validators.md
skills/vue-options-api-best-practices/reference/ts-options-api-computed-return-types.md
- Network accessline 192
- [Vue.js TypeScript with Options API - Typing Computed Properties](https://vuejs.org/guide/typescript/options-api.html#typing-computed-properties)
skills/vue-options-api-best-practices/reference/ts-options-api-proptype-complex-types.md
skills/vue-options-api-best-practices/reference/ts-options-api-provide-inject-limitations.md
skills/vue-options-api-best-practices/reference/ts-options-api-type-event-handlers.md
- Network accessline 200
- [Vue.js TypeScript with Options API - Typing Event Handlers](https://vuejs.org/guide/typescript/options-api.html#typing-event-handlers) - Network accessline 201
- [MDN Event Interface](https://developer.mozilla.org/en-US/docs/Web/API/Event) - Network accessline 202
- [TypeScript DOM Types](https://github.com/microsoft/TypeScript/blob/main/lib/lib.dom.d.ts)
skills/vue-options-api-best-practices/reference/ts-options-api-use-definecomponent.md
skills/vue-options-api-best-practices/reference/ts-strict-mode-options-api.md
- Network accessline 195
- [Vue.js TypeScript Overview - tsconfig.json](https://vuejs.org/guide/typescript/overview.html#configuring-tsconfig-json) - Network accessline 196
- [Vue.js TypeScript with Options API](https://vuejs.org/guide/typescript/options-api.html) - Network accessline 197
- [TypeScript strict Mode](https://www.typescriptlang.org/tsconfig#strict)
skills/vue-pinia-best-practices/reference/pinia-no-active-pinia-error.md
- Network accessline 71
export function fetchUser() { return fetch('/api/user', { - Network accessline 72
return fetch('/api/user', { - Network accessline 90
return fetch('/api/user', { - Network accessline 245
## Reference - [Vue Land FAQ - No Active Pinia](https://vue-land.github.io/faq/no-active-pinia) - Network accessline 246
- [Vue Land FAQ - No Active Pinia](https://vue-land.github.io/faq/no-active-pinia) - Network accessline 247
- [Pinia - Using a Store Outside of a Component](https://pinia.vuejs.org/core-concepts/outside-component-usage.html) - Network accessline 248
- [Pinia - Getting Started](https://pinia.vuejs.org/getting-started.html)
skills/vue-pinia-best-practices/reference/pinia-setup-store-return-all-state.md
- Network accessline 41
async function login(credentials) { const response = await fetch('/api/login', { - Network accessline 42
const response = await fetch('/api/login', { - Network accessline 88
// Actions async function login(credentials) { const response = await fetch('/api/login', { - Network accessline 89
async function login(credentials) { const response = await fetch('/api/login', { method: 'POST', - Network accessline 90
const response = await fetch('/api/login', { - Network accessline 224
## Reference - [Pinia - Setup Stores](https://pinia.vuejs.org/core-concepts/#setup-stores) - Network accessline 225
- [Pinia - Setup Stores](https://pinia.vuejs.org/core-concepts/#setup-stores) - Network accessline 226
- [Pinia - SSR](https://pinia.vuejs.org/ssr/) - Network accessline 227
- [Mastering Pinia - Common Mistakes](https://masteringpinia.com/blog/top-5-mistakes-to-avoid-when-using-pinia)
skills/vue-pinia-best-practices/reference/pinia-store-destructuring-breaks-reactivity.md
- Network accessline 191
## Reference - [Pinia - Destructuring from a Store](https://pinia.vuejs.org/core-concepts/#destructuring-from-a-store) - Network accessline 192
- [Pinia - Destructuring from a Store](https://pinia.vuejs.org/core-concepts/#destructuring-from-a-store) - Network accessline 193
- [Pinia API - storeToRefs](https://pinia.vuejs.org/api/modules/pinia.html#storetorefs)
skills/vue-pinia-best-practices/reference/state-url-for-ephemeral-filters.md
- Network accessline 235
## Reference - [VueUse - useRouteQuery](https://vueuse.org/router/useRouteQuery/) - Network accessline 236
- [VueUse - useRouteQuery](https://vueuse.org/router/useRouteQuery/) - Network accessline 237
- [Vue Router - Query Parameters](https://router.vuejs.org/guide/essentials/passing-props.html#passing-props-to-route-components) - Network accessline 238
- [Mastering Pinia - URL State](https://masteringpinia.com/blog/top-5-mistakes-to-avoid-when-using-pinia)
skills/vue-pinia-best-practices/reference/state-use-pinia-for-large-apps.md
- Network accessline 259
## Reference - [Vue.js - State Management](https://vuejs.org/guide/scaling-up/state-management.html) - Network accessline 260
- [Vue.js - State Management](https://vuejs.org/guide/scaling-up/state-management.html) - Network accessline 261
- [Pinia Documentation](https://pinia.vuejs.org/) - Network accessline 262
- [Pinia vs Vuex](https://pinia.vuejs.org/introduction.html#comparison-with-vuex)
skills/vue-pinia-best-practices/reference/store-method-binding-parentheses.md
- Network accessline 189
## Reference - [Vue.js State Management - Tip on Method Binding](https://vuejs.org/guide/scaling-up/state-management.html#simple-state-management-with-reactivity-api) - Network accessline 190
- [Vue.js State Management - Tip on Method Binding](https://vuejs.org/guide/scaling-up/state-management.html#simple-state-management-with-reactivity-api) - Network accessline 191
- [MDN - this in JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this)
skills/vue-router-best-practices/reference/router-beforeenter-no-param-trigger.md
- Network accessline 165
## Reference - [Vue Router Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html) - Network accessline 166
- [Vue Router Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html) - Network accessline 167
- [Vue Router Per-Route Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html#per-route-guard)
skills/vue-router-best-practices/reference/router-beforerouteenter-no-this.md
- Network accessline 174
## Reference - [Vue Router In-Component Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html#in-component-guards) - Network accessline 175
- [Vue Router In-Component Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html#in-component-guards) - Network accessline 176
- [Vue Router Navigation Resolution Flow](https://router.vuejs.org/guide/advanced/navigation-guards.html#the-full-navigation-resolution-flow)
skills/vue-router-best-practices/reference/router-guard-async-await-pattern.md
- Network accessline 225
## Reference - [Vue Router Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html) - Network accessline 226
- [Vue Router Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html) - Network accessline 227
- [Vue Router Navigation Failures](https://router.vuejs.org/guide/advanced/navigation-failures.html)
skills/vue-router-best-practices/reference/router-navigation-guard-infinite-loop.md
- Network accessline 185
## Reference - [Vue Router Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html) - Network accessline 186
- [Vue Router Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html) - Network accessline 187
- [Vue Router Route Meta Fields](https://router.vuejs.org/guide/advanced/meta.html)
skills/vue-router-best-practices/reference/router-navigation-guard-next-deprecated.md
- Network accessline 148
## Reference - [Vue Router Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html) - Network accessline 149
- [Vue Router Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html) - Network accessline 150
- [RFC: Remove next() from Navigation Guards](https://github.com/vuejs/rfcs/discussions/302)
skills/vue-router-best-practices/reference/router-param-change-no-lifecycle.md
- Network accessline 179
## Reference - [Vue Router Dynamic Route Matching](https://router.vuejs.org/guide/essentials/dynamic-matching.html#reacting-to-params-changes) - Network accessline 180
- [Vue Router Dynamic Route Matching](https://router.vuejs.org/guide/essentials/dynamic-matching.html#reacting-to-params-changes) - Network accessline 181
- [Vue School: Reacting to Param Changes](https://vueschool.io/lessons/reacting-to-param-changes)
skills/vue-router-best-practices/reference/router-simple-routing-cleanup.md
skills/vue-router-best-practices/reference/router-use-vue-router-for-production.md
- Network accessline 180
## Reference - [Vue.js Routing Guide](https://vuejs.org/guide/scaling-up/routing.html) - Network accessline 181
- [Vue.js Routing Guide](https://vuejs.org/guide/scaling-up/routing.html) - Network accessline 182
- [Vue Router Documentation](https://router.vuejs.org/) - Network accessline 183
- [Vue Router Getting Started](https://router.vuejs.org/guide/)
skills/vue-testing-best-practices/SKILL.md
skills/vue-testing-best-practices/reference/async-component-testing.md
skills/vue-testing-best-practices/reference/teleport-testing-complexity.md
- Network accessline 156
## Reference - [Vue Test Utils - Teleport](https://test-utils.vuejs.org/guide/advanced/teleport) - Network accessline 157
- [Vue Test Utils - Teleport](https://test-utils.vuejs.org/guide/advanced/teleport) - Network accessline 158
- [Vue Test Utils - Stubs](https://test-utils.vuejs.org/guide/advanced/stubs-shallow-mount)
skills/vue-testing-best-practices/reference/testing-async-await-flushpromises.md
- Network accessline 173
## Reference - [Vue Test Utils - Asynchronous Behavior](https://test-utils.vuejs.org/guide/advanced/async-suspense) - Network accessline 174
- [Vue Test Utils - Asynchronous Behavior](https://test-utils.vuejs.org/guide/advanced/async-suspense) - Network accessline 175
- [Vue.js Testing Guide](https://vuejs.org/guide/scaling-up/testing)
skills/vue-testing-best-practices/reference/testing-browser-vs-node-runners.md
- Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Network accessline 206
## Reference - [Vue.js Testing - Component Testing](https://vuejs.org/guide/scaling-up/testing#component-testing) - Network accessline 207
- [Vue.js Testing - Component Testing](https://vuejs.org/guide/scaling-up/testing#component-testing) - Network accessline 208
- [Vitest Browser Mode](https://vitest.dev/guide/browser.html)
skills/vue-testing-best-practices/reference/testing-component-blackbox-approach.md
- Network accessline 141
## Reference - [Vue.js Testing Guide](https://vuejs.org/guide/scaling-up/testing) - Network accessline 142
- [Vue.js Testing Guide](https://vuejs.org/guide/scaling-up/testing) - Network accessline 143
- [Vue Test Utils - Testing Philosophy](https://test-utils.vuejs.org/guide/) - Network accessline 144
- [Testing Library Guiding Principles](https://testing-library.com/docs/guiding-principles)
skills/vue-testing-best-practices/reference/testing-composables-helper-wrapper.md
- Network accessline 236
## Reference - [Vue.js Testing Guide - Testing Composables](https://vuejs.org/guide/scaling-up/testing#testing-composables) - Network accessline 237
- [Vue.js Testing Guide - Testing Composables](https://vuejs.org/guide/scaling-up/testing#testing-composables) - Network accessline 238
- [Vue Test Utils - Mounting Components](https://test-utils.vuejs.org/guide/)
skills/vue-testing-best-practices/reference/testing-e2e-playwright-recommended.md
- Network accessline 48
use: { // Base URL for navigation baseURL: 'http://localhost:5173', - Network accessline 49
// Base URL for navigation baseURL: 'http://localhost:5173', // Capture trace on first retry - Network accessline 50
baseURL: 'http://localhost:5173', - Network accessline 78
webServer: { command: 'npm run dev', url: 'http://localhost:5173', - Network accessline 79
command: 'npm run dev', url: 'http://localhost:5173', reuseExistingServer: !process.env.CI, - Network accessline 80
url: 'http://localhost:5173', - Network accessline 239
## Reference - [Playwright Documentation](https://playwright.dev/) - Network accessline 240
- [Playwright Documentation](https://playwright.dev/) - Network accessline 241
- [Vue.js E2E Testing Recommendations](https://vuejs.org/guide/scaling-up/testing#e2e-testing) - Network accessline 242
- [Playwright Best Practices](https://playwright.dev/docs/best-practices)
skills/vue-testing-best-practices/reference/testing-no-snapshot-only.md
- Network accessline 194
## Reference - [Vue.js Testing Guide - What Not to Test](https://vuejs.org/guide/scaling-up/testing) - Network accessline 195
- [Vue.js Testing Guide - What Not to Test](https://vuejs.org/guide/scaling-up/testing) - Network accessline 196
- [Effective Snapshot Testing](https://kentcdodds.com/blog/effective-snapshot-testing) - Network accessline 197
- [Vitest Snapshot Testing](https://vitest.dev/guide/snapshot.html)
skills/vue-testing-best-practices/reference/testing-pinia-store-setup.md
- Network accessline 225
## Reference - [Pinia Testing Guide](https://pinia.vuejs.org/cookbook/testing.html) - Network accessline 226
- [Pinia Testing Guide](https://pinia.vuejs.org/cookbook/testing.html) - Network accessline 227
- [@pinia/testing Package](https://www.npmjs.com/package/@pinia/testing) - Network accessline 228
- [Vue Test Utils - Plugins](https://test-utils.vuejs.org/guide/advanced/plugins.html)
skills/vue-testing-best-practices/reference/testing-suspense-async-components.md
- Network accessline 226
## Reference - [Vue Test Utils - Async Suspense](https://test-utils.vuejs.org/guide/advanced/async-suspense) - Network accessline 227
- [Vue Test Utils - Async Suspense](https://test-utils.vuejs.org/guide/advanced/async-suspense) - Network accessline 228
- [Vue.js Suspense Documentation](https://vuejs.org/guide/built-ins/suspense.html) - Network accessline 229
- [Testing Library Vue Suspense Issue](https://github.com/testing-library/vue-testing-library/issues/230)
skills/vue-testing-best-practices/reference/testing-vitest-recommended-for-vue.md
- Network accessline 201
## Reference - [Vitest Documentation](https://vitest.dev/) - Network accessline 202
- [Vitest Documentation](https://vitest.dev/) - Network accessline 203
- [Vue.js Testing Guide](https://vuejs.org/guide/scaling-up/testing) - Network accessline 204
- [Vue Test Utils](https://test-utils.vuejs.org/)
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in prose of documentationvue-best-practices/references/reactivity.md:263Low confidence
- Network access in prose of documentationvue-best-practices/references/reactivity.md:264Low confidence
- Network access in code of documentationvue-best-practices/references/reactivity.md:338Low confidence
- Network access in prose of documentationvue-best-practices/references/sfc.md:216Low confidence
- Network access in prose of documentationvue-best-practices/references/sfc.md:217Low confidence
- Network access in code of documentationvue-best-practices/references/updated-hook-performance.md:31Low confidence
- Network access in code of documentationvue-best-practices/references/updated-hook-performance.md:32Low confidence
- Network access in code of documentationvue-best-practices/references/updated-hook-performance.md:33Low confidence
- Network access in code of documentationvue-best-practices/references/updated-hook-performance.md:83Low confidence
- Network access in code of documentationvue-best-practices/references/updated-hook-performance.md:84Low confidence
- Network access in code of documentationvue-best-practices/references/updated-hook-performance.md:85Low confidence
- Network access in code of documentationvue-best-practices/references/updated-hook-performance.md:108Low confidence
- Network access in code of documentationvue-best-practices/references/updated-hook-performance.md:109Low confidence
- Network access in prose of documentationvue-debug-guides/reference/animation-key-for-rerender.md:157Low confidence
- Network access in prose of documentationvue-debug-guides/reference/animation-key-for-rerender.md:158Low confidence
- Network access in prose of documentationvue-debug-guides/reference/animation-key-for-rerender.md:159Low confidence
- Network access in prose of documentationvue-debug-guides/reference/animation-key-for-rerender.md:160Low confidence
- Network access in prose of documentationvue-debug-guides/reference/animation-transitiongroup-performance.md:238Low confidence
- Network access in prose of documentationvue-debug-guides/reference/animation-transitiongroup-performance.md:239Low confidence
- Network access in prose of documentationvue-debug-guides/reference/animation-transitiongroup-performance.md:240Low confidence
- Network access in prose of documentationvue-debug-guides/reference/animation-transitiongroup-performance.md:241Low confidence
- Network access in prose of documentationvue-debug-guides/reference/async-component-error-handling.md:114Low confidence
- Network access in prose of documentationvue-debug-guides/reference/async-component-error-handling.md:115Low confidence
- Network access in prose of documentationvue-debug-guides/reference/async-component-keepalive-ref-issue.md:111Low confidence
- Network access in prose of documentationvue-debug-guides/reference/async-component-keepalive-ref-issue.md:112Low confidence
- Network access in prose of documentationvue-debug-guides/reference/async-component-vue-router.md:108Low confidence
- Network access in prose of documentationvue-debug-guides/reference/async-component-vue-router.md:109Low confidence
- Network access in prose of documentationvue-debug-guides/reference/attrs-event-listener-merging.md:204Low confidence
- Network access in prose of documentationvue-debug-guides/reference/attrs-event-listener-merging.md:205Low confidence
- Network access in code of documentationvue-debug-guides/reference/checkbox-true-false-value-form-submission.md:88Low confidence
- Network access in prose of documentationvue-debug-guides/reference/checkbox-true-false-value-form-submission.md:117Low confidence
- Network access in prose of documentationvue-debug-guides/reference/checkbox-true-false-value-form-submission.md:118Low confidence
- Network access in prose of documentationvue-debug-guides/reference/cleanup-side-effects.md:170Low confidence
- Network access in prose of documentationvue-debug-guides/reference/cleanup-side-effects.md:171Low confidence
- Network access in prose of documentationvue-debug-guides/reference/cleanup-side-effects.md:172Low confidence
- Network access in prose of documentationvue-debug-guides/reference/click-events-on-components.md:177Low confidence
- Network access in prose of documentationvue-debug-guides/reference/click-events-on-components.md:178Low confidence
- Network access in prose of documentationvue-debug-guides/reference/click-events-on-components.md:179Low confidence
- Network access in prose of documentationvue-debug-guides/reference/click-events-on-components.md:180Low confidence
- Network access in prose of documentationvue-debug-guides/reference/component-naming-conflicts.md:157Low confidence
- Network access in prose of documentationvue-debug-guides/reference/component-naming-conflicts.md:158Low confidence
- Network access in prose of documentationvue-debug-guides/reference/component-naming-conflicts.md:159Low confidence
- Network access in prose of documentationvue-debug-guides/reference/component-ref-requires-defineexpose.md:174Low confidence
- Network access in prose of documentationvue-debug-guides/reference/component-ref-requires-defineexpose.md:175Low confidence
- Network access in prose of documentationvue-debug-guides/reference/component-ref-requires-defineexpose.md:176Low confidence
- Network access in code of documentationvue-debug-guides/reference/composable-avoid-hidden-side-effects.md:184Low confidence
- Network access in prose of documentationvue-debug-guides/reference/composable-avoid-hidden-side-effects.md:206Low confidence
- Network access in prose of documentationvue-debug-guides/reference/composable-avoid-hidden-side-effects.md:207Low confidence
- Network access in prose of documentationvue-debug-guides/reference/composable-avoid-hidden-side-effects.md:208Low confidence
- Network access in code of documentationvue-debug-guides/reference/composable-call-location-restrictions.md:75Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/create-adaptable-composable/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/create-adaptable-composable/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/create-adaptable-composable/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/create-adaptable-composable/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/vuejs-ai-skills/)