vue中组件的name属性含义和用法示例

 更新时间:2022年12月13日 11:29:39   作者:the-lucky-one  
组件是有name属性的,匹配的就是组件的name,下面这篇文章主要给大家介绍了关于vue中组件的name属性含义和用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

name属性:只有作为组件选项时起作用,用来注册组件名

1、注册组件名

局部注册组件,语法:export default{ components:{"组件名":组件对象}}

其中,"组件名"注册方法:

方法一:随便取名,

例:export default{components:{"ComMy":{template:'<h1><h1>'}}随便取名为:ComMy

方法二:用组件对象中的name属性值

组件对象name属性:是指要引用的子组件对象,向外暴露的name属性

例:

file1.vue中:组件中定义name属性和name属性值

<script>
    export default{
        name:"ComNameHello"
    }
</script>

file2.vue中:创建组件–>引用组件–>注册组件–>使用组件

// 1.创建组件
<template>
   <div>
      <ComNameHello></ComNameHello>  //4.使用组件  可使用组件file1.vue
   </div>
</template>
<script>
   import ComName from "./file1.vue"  //2.引用组件  ComName为file1.vue的组件对象
   export default{
        componemts:{  // 3.注册组件
            [ComName.name]: ComName  
            // ComName.name用来获取:file1.vue的组件对象的name属性值,
            //                      -->是一个字符串"ComNameHello",
            //                      -->被用做:组件名
            // key是变量,必须用“[]”包起来
            // ComName 是组件对象
            // 即:components:{"组件名":组件对象}
        }
    }
</script>

2、应用一:递归组件

递归组件:组件在当前自身组件中,调用自身组件

例:

<template>
    <div >
        <h1>组件递归</h1>
        // 使用子组件ComChild
        <com-child :list="list"></com-child> // 向子组件传递数据
    </div>
</template>
<script>
export default {
    name: 'ComList',
    data() { 
        return { 
            list: [{
                title: 'A',
                children: [{
                    title: 'A_A1', 
                },{
                    title: 'A_A2',
                    children: [{
                        title: 'A_A2_A1',
                    },{
                        title: 'A_A2_A2',
                   }]
                }]
            },{
                "title": "B"
            },{
                "title": "C"
            }]
        }
    },
    components: {
      ComChild: {   // 自定义子组件
        name: 'ComChild', 
        // 模板
        // 在组件内部调用自己 
        //          (1):list="list" --> 即:变量list="来自父组件的值"
        //          (2)使用v-for递归组件时-->需在当前组件(组件名'ComList')中,
        //                                 -->调用自身组件<com-child>
        template:  `  
            <ul>
               <li v-for="(item,index) in list" :key="index"> 
                 <span>{{item.title}}</span>
                 <com-child v-if="item.children" :list="item.children"></com-child>
               </li>
            </ul>`,
        props: ['list'] // 父组件传递来的数据
      }
    }
  }
</script>

输出结果:

请添加图片描述

3、应用二:使用 keep-alive 时,搭配组件 name 进行缓存过滤

使用 keep-alive时,可使用includeexclude依据name属性来指定:是否缓存组件。

动态组件keep-alivename属性关系看另一篇:

4、应用三:vue-devtools 调试工具

vue-devtools 调试工具中,显示的组见名称由组件name属性决定

好处:可看到组件名称更好的定位

例:

请添加图片描述

5、获取name属性

this.$options.name

补充:需要特别注意的是

name的使用过程中报错

[Vue warn]: Do not use built-in or reserved HTML elements as component id: ****

解决办法:

在component里面注册组件的时候避免用html已有的标签来接收组件;

import header from '@/components/header/header';
export default{
  components: {
    'header': header
  }
};

总结

到此这篇关于vue中组件的name属性含义和用法的文章就介绍到这了,更多相关vue组件name属性用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue项目如何监听localStorage或sessionStorage的变化

    vue项目如何监听localStorage或sessionStorage的变化

    这篇文章主要介绍了vue 项目如何监听localStorage或sessionStorage的变化,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2021-01-01
  • 基于vue3开发mobile-table适用于移动端表格

    基于vue3开发mobile-table适用于移动端表格

    这篇文章主要给大家介绍了关于如何基于vue3开发mobile-table适用于移动端表格的相关资料,需要的朋友可以参考下
    2024-03-03
  • electron-vite工具打包后如何通过内置配置文件动态修改接口地址

    electron-vite工具打包后如何通过内置配置文件动态修改接口地址

    使用electron-vite 工具开发项目打包完后每次要改接口地址都要重新打包,对于多环境切换或者频繁变更接口地址就显得麻烦,这篇文章主要介绍了electron-vite工具打包后通过内置配置文件动态修改接口地址实现方法,需要的朋友可以参考下
    2024-05-05
  • 详解vue2和vue3如何定义响应式数据

    详解vue2和vue3如何定义响应式数据

    这篇文章主要是来和大家一起讨论一下vue2和vue3是如何定义响应式数据的,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-11-11
  • vuejs实现本地数据的筛选分页功能思路详解

    vuejs实现本地数据的筛选分页功能思路详解

    今天做项目需要一份根据本地数据的筛选分页功能,下面小编把vuejs实现本地数据的筛选分页功能的实现思路分享到脚本之家平台,需要的朋友可以参考下
    2017-11-11
  • vue中正确使用jsx语法的姿势分享

    vue中正确使用jsx语法的姿势分享

    这篇文章主要给大家介绍了关于vue中正确使用jsx的相关资料,JSX就是Javascript和XML结合的一种格式,React发明了JSX,利用HTML语法来创建虚拟DOM,当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析,需要的朋友可以参考下
    2021-07-07
  • Vue项目使用localStorage+Vuex保存用户登录信息

    Vue项目使用localStorage+Vuex保存用户登录信息

    这篇文章主要为大家详细介绍了Vue项目使用localStorage+Vuex保存用户登录信息,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • vue-cli3单页构建大型项目方案

    vue-cli3单页构建大型项目方案

    这篇文章主要介绍了vue-cli3单页构建大型项目方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 快速入门Vue

    快速入门Vue

    本篇文章主要介绍了如何快速入门Vue的方法,对0基础学习Vue的朋友会很有帮助,跟着小编一起来看下吧
    2016-12-12
  • vue项目中的public、static及指定不编译文件问题

    vue项目中的public、static及指定不编译文件问题

    这篇文章主要介绍了vue项目中的public、static及指定不编译文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论