认识
2023年05月03日
一、认识
<script setup>
是在单文件组件 (SFC
) 中使用组合式 API
的编译时语法糖。当同时使用 SFC
与组合式 API
时该语法是默认推荐。相比于普通的 <script>
语法,它具有更多优势:
-
更少的样板内容,更简洁的代码。
-
能够使用纯
TypeScript
声明props
和自定义事件。 -
更好的运行时性能 (其模板会被编译成同一作用域内的渲染函数,避免了渲染上下文代理对象)。
-
更好的
IDE
类型推导性能 (减少了语言服务器从代码中抽取类型的工作)。
二、特点
2.1 执行时机
<script setup></script>
里面的代码会被编译成组件 setup()
函数的内容。这意味着与普通的 <script>
只在组件被首次引入的时候执行一次不同,<script setup>
中的代码会在每次组件实例被创建的时候执行。
2.2 暴露绑定
当使用 <script setup>
的时候,任何在 <script setup>
声明的顶层的绑定 (包括变量,函数声明,以及 import
导入的内容) 都能在模板中直接使用
语法
-
语法一、顶层的绑定: 当使用
<script setup>
的时候,任何在<script setup>
声明的顶层的绑定 (包括变量,函数声明,以及import
导入的内容) 都能在模板中直接使用:<template>
<button @click="log">{{ msg }}</button>
</template>
<script setup>
// 变量
const msg = 'Hello!'
// 函数
function log() {
console.log(msg)
}
</script> -
语法二、导入的内容:
import
导入的内容也会以同样的方式暴露。这意味着我们可以在模板表达式中直接使用导入的helper
函数,而不需要通过methods
选项来暴露它:<template>
<div>{{ capitalize('hello') }}</div>
</template>
<script setup>
import { capitalize } from './helpers'
</script>