Vue3.x中给组件添加name属性

对于 vue@3.2.34 及以上版本,在使用 <script setup> 的单文件组件时,vue 会根据组件文件名,自动推导出 name 属性。也就是名为 MyHome.vue 或 my-home.vue 的文件的, name 属性为 MyHome,而当你在组件内显示定义 name 属性时,会覆盖推导出的名称。

并且在某些特定场景下,name属性的自动推导也会失效,就像下图,views下都是文件夹包裹index.vue 的场景:

 

第一种解决方式,需要两个script标签:

# 稍显麻烦, 但写demo时很适用
<script lang="ts">
  export default {
    name: 'User'
  }
</script>
<script setup lang="ts"></script>

第二种解决方式,安装 vite-plugin-setup-extend 插件

1. 安装

npm i vite-plugin-vue-setup-extend -D

2. 配置 vite.config.js 

import vueSetupExtend from 'vite-plugin-vue-setup-extend'

export default defineConfig({
  plugins: [
    vue(),
    vueSetupExtend()
})

3. 修改组件的<script>标签,注意至少添加一行注释,否则插件不生效

<script setup lang="ts" name="User">
# 这里至少有一行注释,否则插件不生效
</script>

End---------------------

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值