API Pattern Skill
Purpose
Provides Vue component structure templates and patterns for both Composition API and Options API styles.
User Choice
The user selects their preferred Vue API pattern:
- •
composition-api: Modern functional approach (recommended for Vue 3) - •
options-api: Traditional object-based approach (familiar from Vue 2)
When to Use
Use this skill when generating:
- •Vue components (
src/components/**/*.vue) - •View components (
src/views/**/*.vue) - •Root App component (
src/App.vue) - •Any
.vuesingle-file component
Pattern Selection Logic
Composition API should be used when:
- •User explicitly selects
composition-api - •Building new Vue 3 applications (recommended default)
- •Need better TypeScript integration
- •Want improved code reusability via composables
- •Working with complex component logic
Options API should be used when:
- •User explicitly selects
options-api - •Migrating from Vue 2 applications
- •Team preference for object-based structure
- •Developer familiarity with Vue 2 patterns
Templates
See examples.md for complete component templates including:
- •Basic component structure
- •Component with props and emits
- •Component with lifecycle hooks
- •Component with computed properties
- •Component with watchers
- •Component with composables/mixins
- •View component examples
- •Store integration examples
Key Differences Summary
Composition API
- •Uses
<script setup lang="ts"> - •Reactivity via
ref(),reactive(),computed() - •Lifecycle hooks as functions (
onMounted,onUpdated, etc.) - •Code organized by logical concern
- •Better tree-shaking and TypeScript inference
Options API
- •Uses
defineComponent() - •Reactivity via
data()return object - •Lifecycle hooks as methods (
mounted(),updated(), etc.) - •Code organized by option type
- •Familiar structure for Vue 2 developers
Notes
- •Always use TypeScript (
lang="ts") - •Always use scoped styles (
<style scoped lang="scss">) - •Import theme variables:
@use '@/theme/' as *; - •Follow naming conventions: PascalCase for component names
- •Include proper type definitions for props and emits