iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vue3中setup如何添加name
  • 321
分享到

Vue3中setup如何添加name

2023-07-06 11:07:57 321人浏览 泡泡鱼
摘要

这篇文章主要介绍了vue3中setup如何添加name的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3中setup如何添加name文章都会有所收获,下面我们一起来看看吧。Vue3中name有什么用呢?在递

这篇文章主要介绍了vue3中setup如何添加name的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3中setup如何添加name文章都会有所收获,下面我们一起来看看吧。

    Vue3中name有什么用呢?

    递归组件的时候需要定义name

    配合keep-alive include exclude 可以缓存组件

    在Vue有报错或者调试的时候可以看到组件的name

    Vue3 定义 name

    1.自动生成

    <script setup> 只要在script开启setup语法糖模式 单文件组件会自动根据文件名生成对应的 name 选项 例如 Tree.vue 那他的name 就是 Tree 自动生成,这样做有一个弊端如果想修改name需要修改组件名称如果有地方import 该组件需要一并修改。

    2.在开启一个script用来定义name

    优点 这种方式可以随意定义name 弊端 一个单文件组件出现两个script 会让人感到疑惑。

    <template><div></div></template><script lang="ts" setup>import {ref,Reactive } from 'vue'</script><script lang='ts'> export default {    name:"XXX" }</script><style lang="less" scoped></style>
    3.使用第三方插件 unplugin-vue-define-options

    安装方法 npm i unplugin-vue-define-options -D

    vite 使用

    // vite.config.tsimport DefineOptions from 'unplugin-vue-define-options/vite'import Vue from '@vitejs/plugin-vue'export default defineConfig({  plugins: [Vue(), DefineOptions()],})

    配置tsconfig.JSON

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

    使用方法 通过编译宏 defineOptions 添加nameinheritAttrs

    <script setup lang="ts">defineOptions({  name: 'Foo',  inheritAttrs: false,})</script>
    4.个人想法 我想着直接在script 定义name 不好吗?
    <template><div></div></template><script name="xiaoman" lang="ts" setup>import {ref,reactive } from 'vue'</script><style lang="less" scoped></style>

    这件事情在Vue社区也是进行了激烈的讨论,而尤大也是做出了回复

    尤大觉得这个构思很好,但是有一些担忧,在我们使用组件的时候需要定义nameinheritAttrs 情况非常罕见,大部分组件库的开发人员可能经常会使用这两个东西,但对于90%的应用程序组件来说,这确实是一组不同的权衡,并且处理props将会变得很麻烦,再加上实现的复杂性,不确定做这件事是否值得。

    不过已经有一个插件实现该功能 unplugin-vue-setup-extend-plus

    我们来复刻一个简易版 其原理还是加一个script 只不过开发人员看不到了这个script

    Vue3 setup 支持 name 插件实现 思路借鉴上面插件

    import type { Plugin } from 'vite'//@vue/compiler-sfc 这个插件是处理我们单文件组件的代码解析import { compileScript, parse } from '@vue/compiler-sfc'export default function setupName(): Plugin {    return {        name: 'vite:plugin:vue:name',        //一个 Vite 插件可以额外指定一个 `enforce` 属性        //(类似于 webpack 加载器)来调整它的应用顺序。`enforce` 的值可以是`pre` 或 `post`        //加载顺序为          //Alias          //带有 `enforce: 'pre'` 的用户插件          //Vite 核心插件          //没有 enforce 值的用户插件          //Vite 构建用的插件          //带有 `enforce: 'post'` 的用户插件         //Vite 后置构建插件(最小化,manifest,报告)        enforce: "pre",        //transfORM code参数就是我们写的代码比如vue代码  id就是路径例如/src/xx/xx.vue        transform(code, id) {            //只处理vue结尾的文件            if (/.vue$/.test(id)) {                let { descriptor } = parse(code)                //通过compileScript 处理script 返回result                  //attrs: { name: 'xm', lang: 'ts', setup: true },                  //lang: 'ts',                  //setup: true,                const result = compileScript(descriptor, { id })                //attrs 此时就是一个对象                const name = result.attrs.name                 const lang = result.attrs.lang                const inheritAttrs = result.attrs.inheritAttrs                //写入script                const template = `                <script ${lang ? `lang=${lang}` :  ''}>                 export default {                    ${name ? `name:"${name}",`  : ''}                    ${inheritAttrs ? `inheritAttrs: ${inheritAttrs !== 'false'},` : ''}                 }                </script>                `;                //最后拼接上这段代码 也就是我们加的script这一段 返回code                code += template;               // console.log(code)            }            return code        }    }}

    然后在vite config ts 引入我们写好的插件

    Vue3中setup如何添加name

    Tree.vue 子组件

    <template>    <div v-for="item in data">        {{ item.name }}        <xm v-if="item?.children?.length" :data='item?.children'></xm>    </div></template><script name='xm' lang="ts" setup>import { ref, reactive } from 'vue'defineProps<{    data: any[]}>()</script>

    App.vue 父组件

    <template>    <TreeVue :data="data"></TreeVue></template><script lang="ts" setup>import TreeVue from './components/Tree.vue';const data = [    {        name: "1",        children: [            {                name: "1-1",                children: [                    {                        name: "1-1-1"                    }                ]            }        ]    }]</script>

    组件成功递归出来

    Vue3中setup如何添加name

    关于“Vue3中setup如何添加name”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Vue3中setup如何添加name”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

    --结束END--

    本文标题: Vue3中setup如何添加name

    本文链接: https://www.lsjlt.com/news/357991.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Vue3中setup如何添加name
      这篇文章主要介绍了Vue3中setup如何添加name的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3中setup如何添加name文章都会有所收获,下面我们一起来看看吧。Vue3中name有什么用呢?在递...
      99+
      2023-07-06
    • Vue3中setup怎么添加name
      Vue3中name有什么用呢?1.在递归组件的时候需要定义name2.配合keep-alive include exclude 可以缓存组件3.在Vue有报错或者调试的时候可以看到组件的nameVue3 定义 name1.自动生成<s...
      99+
      2023-05-14
      Vue3 setup name
    • Vue3使用setup如何定义组件的name属性详解
      目录问题:描述:解决:第一种:第二种:总结问题: 解决Vue3中使用setup如何定义组件的name属性 描述: 这几天在尝试改写基于vue2的组件至vue3版本,使用了最新的set...
      99+
      2024-04-02
    • vue3中如何使用setup、 ref和reactive
      1.初识setUp的使用简单介绍下面的代码功能:使用ref函数,去使用监听某一个变量的变化,并且把它渲染到视图上。setUp函数是组合API的入口函数。这个是非常重要的。setUp可以去监听变量的变化哈!我们将会利用它ref 在vue中内置...
      99+
      2023-05-16
      Vue3 reactive setup
    • 如何在vue3中使用setup、 ref、reactive
      1.初识setUp的使用简单介绍下面的代码功能:使用ref函数,去使用监听某一个变量的变化,并且把它渲染到视图上。setUp函数是组合API的入口函数。这个是非常重要的。setUp可以去监听变量的变化哈!我们将会利用它ref 在vue中内置...
      99+
      2023-05-14
      Vue3 reactive setup
    • vue3中的setup函数如何使用
      这篇文章主要讲解了“vue3中的setup函数如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3中的setup函数如何使用”吧!概述 一、 初识setup函数 ...
      99+
      2023-06-30
    • 前端vue3的setup如何使用
      本文小编为大家详细介绍“前端vue3的setup如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“前端vue3的setup如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue3 中新增了 setup...
      99+
      2023-06-29
    • 如何在Vue3中使用<script lang=“ts“ setup>语法糖
      这篇“如何在Vue3中使用<script lang=“ts“ setup>语法糖”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下...
      99+
      2023-07-06
    • Vue3中的setup与自定义指令如何使用
      本篇内容主要讲解“Vue3中的setup与自定义指令如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3中的setup与自定义指令如何使用”吧!setup语法糖最大好处就是所有声明部分...
      99+
      2023-07-06
    • 如何在vue3中同时使用tsx与setup语法糖
      目录前言Tsx与setup语法糖的优势遇到的问题最后前言 想这样做的原因是在vue3里使用tsx开发时,props的声明显得异常麻烦,不禁想到defineProps的便利,但同时在v...
      99+
      2024-04-02
    • Vue3中的setup语法糖、computed函数、watch函数如何用
      computed函数computed 函数的使用:其实我们什么情况下会使用计算属性呢,那一定是通过依赖的数据得到新的数据!1)从Vue中引入computed 2)在setup中进行使用,将一个函数,函数的返回值就是计算好的数据 3)最后呢通...
      99+
      2023-05-17
      Vue3 setup computed
    • setup+ref+reactive如何实现vue3响应式功能
      这篇文章给大家介绍setup+ref+reactive如何实现vue3响应式功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。setup 是用来写组合式 api ,内部的数据和方法需要通过 return 之后,模板才能...
      99+
      2023-06-21
    • Vue3如何使用setup语法糖拒绝写return
      这篇“Vue3如何使用setup语法糖拒绝写return”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue3如何使用set...
      99+
      2023-07-06
    • 详解如何在Vue3使用<scriptlang=“ts“setup>语法糖
      目录迁移组件隐式返回definePropsdefineEmits默认关闭和defineExposeVue 3.2 引入了语法,这是一种稍微不那么冗长的声明组件的方式。您可以通过向 S...
      99+
      2024-04-02
    • java中import如何添加
      在Java中,使用import语句来引入其他包中的类或者接口。import语句通常放在Java源文件的开头。有以下几种import的...
      99+
      2023-08-16
      java import
    • Bootstrap中如何添加列表
      本篇内容主要讲解“Bootstrap中如何添加列表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Bootstrap中如何添加列表”吧!1 无序列表列表组是显示一...
      99+
      2024-04-02
    • 如何在jquery中添加css
      本篇文章给大家分享的是有关如何在jquery中添加css,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在jquery中,可以使用css()方法来添加css样式。css() 方法...
      99+
      2023-06-15
    • 如何进行vue3基于script setup语法$refs的使用
      如何进行vue3基于script setup语法$refs的使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、vue2语法vue2语法在组件上设置ref属性后...
      99+
      2023-06-22
    • windows中coreldraw如何添加字
      本篇内容主要讲解“windows中coreldraw如何添加字”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows中coreldraw如何添加字”吧! ...
      99+
      2022-12-02
      windows coreldraw
    • css中如何添加中划线
      这篇文章给大家分享的是有关css中如何添加中划线的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在css中,可以利用“text-decoration:...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作