Vue3中的<script setup>和<script>的区别

相同点

在一个 Vue3 单文件组件 (SFC)中,<script setup><script> 它们各自最多只能存在一个。

不同点

<script setup> 这个脚本块将被预处理为组件的 setup() 函数,这意味着它将为每一个(也可以说每一次)组件实例都执行。

<script> 只在组件被首次引入的时候执行一次,其它地方引入或再次实例化都不会再执行。

使用

所以我们可以利用这个差异性做一些事情。

1、除<script setup> 标签外再起一个<script>标签来存放一些字面量。
<script lang="ts">
export const componentName = 'MyComponent';

export default {
	name: componentName
	inheritAttrs: false,
	customOptions: {}
}
</script>
<script setup lang="ts">
// ...
console.log(componentName)
</script>
2、除<script setup> 标签外再起一个<script>标签来存放TS类型声明。
<script lang="ts">
export type Test = {
  aaa: string
}

// 底部必须要有export或非TS类型申明代码,否则vscode中下方代码颜色会出现异常,原因未知
export {}
</script>
<script setup lang="ts">
// ...
const obj: Test = { aaa: '1' }
</script>

参考

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值