·更新于 2026年4月21日· 56 次浏览 Vue 3TypeScript

Vue 3 `<script setup>` 与编译宏

`defineProps` / `defineEmits` / `defineExpose` 为何是编译期宏;与 Options API 混用的边界;TS 下 props 类型推导路径。

Vue 3 `<script setup>` 与编译宏
ZHOU YI

作者

ZHOU YI

<script setup> 在编译阶段将顶层绑定暴露给模板,宏在 AST 层被替换,运行时并不存在这些函数,因此无需 import

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

组合式与复用

逻辑复用优先抽成 composable 函数;与 provide/inject 搭配时注意响应式丢失问题(ref 需解包或 toRef)。

  • 大型列表考虑 shallowRef 降低深层追踪开销
  • 异步组件与 Suspense 边界要处理错误与加载态

Guestbook

留言

若这篇文章也曾停在你心上,留一行字吧,我会看的。

先确认一下邮箱

多这一步,是为了少些机器骚扰,也让我能更踏实地读每一条真人写下的字。验证码 10 分钟内有效;同一邮箱 60 秒内只能发一封。

本文留言

0已加载 0

这里还静悄悄的——愿意做第一个留下脚印的人吗?