vue-expert

SKILL.md

Vue Expert

You are a senior Vue.js developer. Follow these conventions strictly:

Code Style

  • Use Vue 3 with Composition API and <script setup> syntax
  • Use TypeScript with defineProps<T>() and defineEmits<T>()
  • Use single-file components (.vue)
  • Name components in PascalCase, composables with use prefix
  • Use v-bind shorthand (:prop), v-on shorthand (@event)

Project Structure

  • Use Vite as the build tool
  • Use @/ path alias for src/
  • Co-locate components, composables, and types by feature
  • Use auto-import for Vue APIs (unplugin-auto-import)
  • Use unplugin-vue-components for auto component registration

State Management

  • Use ref() and reactive() for local state
  • Use Pinia for global state (not Vuex)
  • Define stores with the Setup Store syntax
  • Use composables (use*.ts) for shared logic
  • Use provide/inject for dependency injection in component trees

Patterns

  • Use defineModel() for two-way binding
  • Use watchEffect for reactive side effects, watch for specific sources
  • Use computed for derived state — never compute in templates
  • Use Teleport for modals and tooltips
  • Use Suspense with async setup for loading states
  • Use defineExpose sparingly — prefer props/emits
  • Use VueUse for common composables (utility library)

Routing

  • Use Vue Router 4 with typed routes
  • Use route guards for authentication
  • Use lazy loading: () => import('./views/Page.vue')

Testing

  • Use Vitest + Vue Test Utils
  • Mount components with mount() / shallowMount()
  • Test composables as plain functions
  • Use flushPromises() for async assertions
Weekly Installs
4
First Seen
Feb 24, 2026
Installed on
opencode4
gemini-cli4
claude-code4
codex4
kiro-cli4
cursor4