vue3使用setup语法糖时无法定义组件name?使用vite-plugin-vue-setup-extend解决,但无效?

在vue3中提倡使用setup语法糖,setup语法糖虽然好用,却也带来了一些问题,如:如何定义组件的name

在vue2中使用如下方式定义组件的name:

export default {
	name:'DemoComponent' // 组件name
}

vue3中在使用setup语法糖时,如何定义组件的name,有以下两种方式:

第一种:通过定义两个script标签,一个用vue2的方式定义组件name,另一个使用setup语法糖

<script>
export default {
	name:'DemoComponent' // 组件name
}
</script>
<script setup></script>

第二种:使用 vite-plugin-vue-setup-extend 插件来解决:

  • 第一步:安装vite-plugin-vue-setup-extend 插件:
pnpm i vite-plugin-vue-setup-extend -D
  • 第二步:在vite.config.js 中引入(ts也一样)
import vue from '@vitejs/plugin-vue'
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
// https://vitejs.dev/config/
export default defineConfig({
	plugins: [vue(),vueSetupExtend()],
})

如果是ts写的,还需要在tsconfig.json中添加如下代码:

// tsconfig.json
  "compilerOptions": {
    "types": ["unplugin-vue-define-options"]
  }

必须要注意的是当组件的script标签中的内容为空时,name还是不会生效,如下:
name无效:

<script setup name="DemoComponent">
</script>

name有效:

<script setup name="DemoComponent">
// test
</script>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值