Vue单文件setup定义组件名实践
方法一:两个 <script>
vue
<script lang="ts">
export default {
name: 'MyComponent'
}
</script>
<script setup lang="ts">
// ...
</script>
方法二:使用 unplugin-vue-define-options
插件
安装
bash
pnpm i -D unplugin-vue-define-options
bash
yarn add -D unplugin-vue-define-options
bash
npm i -D unplugin-vue-define-options
类型支持
在 tsconfig.json
中新增如下代码:
json
{
"compilerOptions": {
"types": ["unplugin-vue-define-options/macros-global" /* ... */]
},
}
使用
vue
<script setup lang="ts">
defineOptions({
name: 'MyComponent'
})
</script>
eslint支持
如果eslint定义了 no-undef
规则,使用 defineOptions
会提示使用了未定义的变量,此时需要在eslint配置文件中将该函数定义为全局字段:
js
/** @type {import('eslint').Linter.Config} */
module.exports = {
globals: {
'defineOptions': 'readonly'
},
// ...
}