vue3更强的 TS 类型与 SFC 能力

0 阅读1分钟
更强的 TS 类型与 SFC 能力:让“组件写法更简洁 + 类型更可靠”

理解:这不是运行时“原理”,而是写法/工具链的升级,典型就是 <script setup>、defineProps/defineEmits 的类型推导、ref/computed 的类型推导更自然。

<script setup lang="ts">
const props = defineProps<{ title: string }>()
const emit = defineEmits<{ (e: 'save', id: number): void }>()
</script>

SFC = Single File Component(单文件组件): 就是我们写的 .vue 文件。一个 .vue 文件里通常包含三块(这就是它的“能力”核心):

  1. <template>:声明 UI 结构(最终会被编译成渲染函数)
  2. <script> / <script setup>:组件逻辑、状态、props/emits、生命周期等
  3. <style>:组件样式(可 scoped、可用预处理器如 scss)

“SFC 能力”具体指什么: 它不是一个单独 API,而是一整套编译与工程能力,让我们在一个文件里完成组件的 UI+逻辑+样式,并支持这些特性:

  1. Scoped CSS:<style scoped> 让样式默认只影响当前组件
  2. <script setup>:更简洁的 Composition API 写法,类型推导更强(Vue3 里非常主流)
  3. 样式/语言扩展:<style lang="scss"><script lang="ts">
  4. 模板语法编译:v-if/v-for、组件插槽等都在 SFC 编译阶段优化
  5. 热更新体验(HMR):开发时改 .vue 能快速热更新
总结:SFC 的“能力”= Vue 专门为 .vue 文件提供的编译规则 + 语法块约定 + 工具链支持,让写组件更直观、工程体验更好。