系列 2 —— 精选文章链接
1. vue3 的宏到底是什么东西?
1.1 宏的定义
vue3
的宏是一种特殊的代码,在编译时会将这些特殊的代码转换为浏览器能够直接运行的指定代码,根据宏的功能不同,转换后的代码也不同。
1.2 宏在那个阶段运行
宏在编译阶段运行: 例如在编译时 defineProps
宏就会被转换为定义 props
相关的代码,当在浏览器运行时自然也就没有了 defineProps
宏相关的代码了。所以才说宏是在编译时执行的代码,而不是运行时执行的代码。
1.3 为什么这些宏不需要手动从 vue 中 import?
因为在编译时已经将这些宏替换为指定的浏览器能够直接运行的代码,在运行时已经不存在这些宏相关的代码,自然不需要从 vue 中 import。
1.4 为什么只能在 setup 顶层中使用这些宏?
因为在编译时只会去处理setup
顶层的宏,其他地方的宏会原封不动的输出回来。在运行时由于我们没有在任何地方定义这些宏,当代码执行到宏的时候当然就会报错。