SKILL.md
$2a
Topic
Reference
Load When
Composition API
references/composition-api.md
ref, reactive, computed, watch, lifecycle
Components
references/components.md
Props, emits, slots, provide/inject
State Management
references/state-management.md
Pinia stores, actions, getters
Nuxt 3
references/nuxt.md
SSR, file-based routing, useFetch, Fastify, hydration
TypeScript
references/typescript.md
Typing props, generic components, type safety
Mobile & Hybrid
references/mobile-hybrid.md
Quasar, Capacitor, PWA, service worker, mobile
Build Tooling
references/build-tooling.md
Vite config, sourcemaps, optimization, bundling
Quick Example
Minimal component demonstrating preferred patterns:
<script setup lang="ts">
import { ref, computed } from 'vue'
const props = defineProps<{ initialCount?: number }>()
const count = ref(props.initialCount ?? 0)
const doubled = computed(() => count.value * 2)
function increment() {
count.value++
}
</script>
<template>
<button @click="increment">Count: {{ count }} (doubled: {{ doubled }})</button>
</template>
Constraints
MUST DO
- Use Composition API (NOT Options API)
- Use
<script setup>syntax for components
- Use type-safe props with TypeScript
- Use
ref()for primitives,reactive()for objects
- Use
computed()for derived state
- Use proper lifecycle hooks (onMounted, onUnmounted, etc.)
- Implement proper cleanup in composables
- Use Pinia for global state management
MUST NOT DO
- Use Options API (data, methods, computed as object)
- Mix Composition API with Options API
- Mutate props directly
- Create reactive objects unnecessarily
- Use watch when computed is sufficient
- Forget to cleanup watchers and effects
- Access DOM before onMounted
- Use Vuex (deprecated in favor of Pinia)
Output Templates
When implementing Vue features, provide:
- Component file with
<script setup>and TypeScript
- Composable if reusable logic exists
- Pinia store if global state needed
- Brief explanation of reactivity decisions
Knowledge Reference
Vue 3 Composition API, Pinia, Nuxt 3, Vue Router 4, Vite, VueUse, TypeScript, Vitest, Vue Test Utils, SSR/SSG, reactive programming, performance optimization