当前位置: 首页 > news >正文

解决Vue3中使用setup如何定义组件的name属性

vue2的书写name:

<template>
  <div></div>
</template>

<script>
export default {
  name: "nameoption",
};
</script>

<style lang="scss" scoped></style>

解决:Vue3中使用setup如何定义组件的name属性

使用setup语法糖的写法:在写一个script标签

方式1:

<template>
  <div></div>
</template>
<script>
export default {
  name: "nameOption",
};
</script>

<script setup></script>

<style lang="scss" scoped></style>

方式2:

安装:unplugin-vue-define-options , Element Plus中都是使用这个插件来对组件名进行注册的
cnpm install unplugin-vue-define-options -D

在 vite.config.ts

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

import DefineOptions from 'unplugin-vue-define-options/vite';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(), DefineOptions()],
});

在tsconfig.json文件进行配置(不是ts的可以忽略)

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

在vuecli创建的项目的vue.config.js

const { defineConfig } = require("@vue/cli-service");
module.exports = defineConfig({
  transpileDependencies: true,
  configureWebpack: {
    plugins: [require("unplugin-vue-define-options/webpack")()],
  },
});

使用:

<template>
   
</template>

<script lang="ts" setup>
  defineOptions({
    name: 'nameOption',
  });
</script>

<style scoped></style>

方式3:

安装插件 cnpm install vite-plugin-vue-setup-extend -D
集成插件 在vite.config.ts文件引入vite-plugin-vue-setup-extend

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueSetupExtend from 'vite-plugin-vue-setup-extend'

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

直接在script的标签上定义name值

<script setup lang="ts" name="Layout">

</script>
<template>
  <div>layout</div>
</template>

<style lang="less" scoped></style>

不使用setup语法糖

方式1:早期的写法

<template>
  <div>

  </div>
</template>

<script lang="ts">
import { defineComponent } from 'vue'

export default defineComponent({
  name:'nameOptions',
  setup () { 
    return {}
  }
})
</script>

<style scoped>

</style>

方式2

<template>
  <div>

  </div>
</template>

<script>
import { reactive, toRefs } from 'vue'

export default {
  name:'nameOption',
  setup () { 
    return {}
  }
}
</script>

<style lang="scss" scoped>

</style>





相关文章:

  • antd 类组件swiper中的指示器和ref
  • 自主异常检测算法(Matlab代码实现)
  • java中的位运算符
  • 二十、解释器模式 ( Interpreter Pattern )
  • SpringMVC视图视图控制器
  • 怎么把两个PDF合并成一个?这几种操作轻松合并
  • 微信小程序——视图与逻辑,页面导航(导航到 tabBar 页面,导航到非 tabBar 页面)
  • 系分 - 案例分析 - 项目管理
  • 产品---竞品分析
  • 第九届蓝桥杯省赛 C++ A组 - 付账问题
  • 从汇编的角度了解C++原理——类的储存结构和函数调用
  • 双向bfs-字串变换
  • 软考报名有没有学历要求?2023年软考报名条件分享
  • linux下调节GPU的功率限制
  • 冥想第六百七十五天
  • 牛客竞赛每日俩题 - 动态规划4
  • python 列表生成式
  • MongoDB面试题整理-四年经验
  • 机器学习笔记之深度玻尔兹曼机(一)玻尔兹曼机系列整体介绍
  • 【Linux】探索缓冲区的概念 | Git 三板斧 | 实现简易进度条