← ClaudeAtlas

vuelisted

Vue 3 Composition API, script setup macros, reactivity system, and built-in components. Use when writing Vue SFCs, defineProps/defineEmits/defineModel, watchers, or using Transition/Teleport/Suspense/KeepAlive.
anantkanok/skills · ★ 1 · Web & Frontend · score 77
Install: claude install-skill anantkanok/skills
# Vue > Based on Vue 3.5. Always use Composition API with `<script setup lang="ts">`. ## Preferences - Prefer TypeScript over JavaScript - Prefer `<script setup lang="ts">` over `<script>` - For performance, prefer `shallowRef` over `ref` if deep reactivity is not needed - Always use Composition API over Options API - Discourage using Reactive Props Destructure ## Core | Topic | Description | Reference | |-------|-------------|-----------| | Script Setup & Macros | `<script setup>`, defineProps, defineEmits, defineModel, defineExpose, defineOptions, defineSlots, generics | [script-setup-macros](references/script-setup-macros.md) | | Reactivity & Lifecycle | ref, shallowRef, computed, watch, watchEffect, effectScope, lifecycle hooks, composables | [core-new-apis](references/core-new-apis.md) | ## Features | Topic | Description | Reference | |-------|-------------|-----------| | Built-in Components & Directives | Transition, Teleport, Suspense, KeepAlive, v-memo, custom directives | [advanced-patterns](references/advanced-patterns.md) | ## Quick Reference ### Component Template ```vue <script setup lang="ts"> import { ref, computed, watch, onMounted } from 'vue' const props = defineProps<{ title: string count?: number }>() const emit = defineEmits<{ update: [value: string] }>() const model = defineModel<string>() const doubled = computed(() => (props.count ?? 0) * 2) watch(() => props.title, (newVal) => { console.log('Title changed:', newVal) }) onMounte