<script setup> 是在使用组合式 API 的编译时语法糖,相比于普通的 <script> 语法,它具有更多优势:
1、更少的样板内容,更简洁的代码。
2、能够使用纯 TypeScript 声明 props 和自定义事件。
3、更好的运行时性能 (其模板会被编译成同一作用域内的渲染函数,避免了渲染上下文代理对象)。
4、更好的 IDE 类型推导性能 (减少了语言服务器从代码中抽取类型的工作)。
使用时需要在 <script> 代码块上添加setup属性,里面的代码会被编译成组件 setup() 函数的内容,会在每次组件实例被创建的时候执行。
<script setup> 可以和普通的 <script> 一起使用,普通的 <script> 在有这些需要的情况下或许会被使用到:
1、声明无法在 <script setup> 中声明的选项,例如 inheritAttrs 或插件的自定义选项。
2、声明模块的具名导出 (named exports)。
3、运行只需要在模块作用域执行一次的副作用,或是创建单例对象。