Use when editing .vue files, creating Vue 3 components, writing composables, or testing Vue code - provides Composition API patterns, props/emits best practices, VueUse integration, and reactive destructuring guidance
94
92%
Does it follow best practices?
Impact
97%
1.36xAverage score across 3 eval scenarios
Passed
No findings from the security scan
Reference for Vue 3 Composition API patterns, component architecture, and testing practices.
Current stable: Vue 3.5+ with enhanced reactivity performance (-56% memory, 10x faster array tracking), new SSR features, and improved developer experience.
Progressive reference system for Vue 3 projects. Load only files relevant to current task to minimize context usage (~250 tokens base, 500-1500 per sub-file).
Use this skill when:
.vue componentsuse* functions)Use nuxt skill instead for:
For styled UI components: use nuxt-ui skill
For headless accessible components: use reka-ui skill
For VueUse composables: use vueuse skill
| Working on... | Load file |
|---|---|
.vue in components/ | references/components.md |
File in composables/ | references/composables.md |
File in utils/ | references/utils-client.md |
.spec.ts or .test.ts | references/testing.md |
| TypeScript patterns | references/typescript.md |
| Vue Router typing | references/router.md |
| Reactivity (ref, watch) | references/reactivity.md |
| Custom directives | references/directives.md |
| Provide/inject | references/provide-inject.md |
| Edge cases, vue-tsc | references/gotchas.md |
Consider loading these reference files based on your task:
components/ or writing .vue filesuse* functions)utils/ or writing client utilities.spec.ts or .test.ts filesDO NOT load all files at once. Load only what's relevant to your current task.
<script setup lang="ts">
const { count = 0 } = defineProps<{ count?: number }>()
const emit = defineEmits<{ update: [value: number] }>()
</script>
<template>
<button @click="emit('update', count + 1)">
Count: {{ count }}
</button>
</template>references/components.md - Props with reactive destructuring, emits patterns, defineModel for v-model, slots shorthand
references/composables.md - Composition API structure, VueUse integration, lifecycle hooks, async patterns, reactivity gotchas
references/utils-client.md - Pure functions, formatters, validators, transformers, when NOT to use utils
references/testing.md - Vitest + @vue/test-utils, component testing, composable testing, router mocking
references/typescript.md - InjectionKey for provide/inject, vue-tsc strict templates, tsconfig settings, generic components
references/router.md - Route meta types, typed params with unplugin-vue-router, scroll behavior, navigation guards
references/reactivity.md - ref, reactive, computed, watch, watchEffect, reactivity fundamentals
references/directives.md - Custom directive hooks, v-focus, v-click-outside, v-tooltip patterns
references/provide-inject.md - InjectionKey typing, app-level provide, readonly patterns
references/gotchas.md - Common gotchas, vue-tsc edge cases, hydration issues, race conditions (from vuejs-ai/skills)
affb417
Also appears in
since Feb 23, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.