vue

vue

热门

Vue 3 组合式 API、script setup 宏、响应式系统和内置组件。在编写 Vue SFC、使用 defineProps/defineEmits/defineModel、侦听器或使用 Transition/Teleport/Suspense/KeepAlive 时使用。

5356Star
304Fork
更新于 2026/6/22
SKILL.md
只读
名称
vue
描述

Vue 3 组合式 API、script setup 宏、响应式系统和内置组件。在编写 Vue SFC、使用 defineProps/defineEmits/defineModel、侦听器或使用 Transition/Teleport/Suspense/KeepAlive 时使用。

Vue

基于 Vue 3.5。始终使用组合式 API 和 <script setup lang="ts">

偏好

  • 优先使用 TypeScript 而非 JavaScript
  • 优先使用 <script setup lang="ts"> 而非 <script>
  • 为性能考虑,如果不需要深层响应性,优先使用 shallowRef 而非 ref
  • 始终使用组合式 API 而非选项式 API
  • 不鼓励使用响应式 Props 解构

核心

主题 描述 参考
Script Setup 与宏 <script setup>、defineProps、defineEmits、defineModel、defineExpose、defineOptions、defineSlots、泛型 script-setup-macros
响应性与生命周期 ref、shallowRef、computed、watch、watchEffect、effectScope、生命周期钩子、组合式函数 core-new-apis

特性

主题 描述 参考
内置组件与指令 Transition、Teleport、Suspense、KeepAlive、v-memo、自定义指令 advanced-patterns

快速参考

组件模板

<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)
})

onMounted(() => {
  console.log('Component mounted')
})
</script>

<template>
  <div>{{ title }} - {{ doubled }}</div>
</template>

关键导入

// 响应性
import { ref, shallowRef, computed, reactive, readonly, toRef, toRefs, toValue } from 'vue'

// 侦听器
import { watch, watchEffect, watchPostEffect, onWatcherCleanup } from 'vue'

// 生命周期
import { onMounted, onUpdated, onUnmounted, onBeforeMount, onBeforeUpdate, onBeforeUnmount } from 'vue'

// 工具函数
import { nextTick, defineComponent, defineAsyncComponent } from 'vue'