Vue export default中的name属性有哪些作用

目录
  • Vue export default的name属性作用
    • 1.组件自身的递归调用
    • 2.当我们使用vue.js官方提供的调试工具调试
    • 3.最后一种应该是使用比较多的情况
  • Vue如何获取组件name属性

Vue export default的name属性作用

在划分模块和创建单页面组件时,常常写到name。嵌套路由中,index.vue极为常见。

那么在vue中,export default { name: ‘xxx’} 中的name到底有啥作用呢?

还是先回到官方的文档:官方链接

官方文档已经给我们描述了两种使用情况,可能在开发中,并不是常用,举例子说明一下。

1.组件自身的递归调用

就是在当前组件中,调用组件自己

componentA.vue

<template>
  <div class="component-a">
    <!-- 一个简单的树形组件 -->
    <tree :treeData="treeData"></tree>
  </div>
</template>
<script>
export default {
    name: 'component-a',
    data() {
      return {
        treeData: [{
          title: '树形标题一',
          expand: true,
          children: [{
            title: '子标题1',
            expand: true
          },
          {
            title: '子标题2',
            expand: true,
            children: [{
              title: '子标题2.1',
              expand: true
            },
            {
              title: '子标题2.2',
              expand: true
            },
            {
              title: '子标题2.3',
              expand: true
            }]
          }]
      }
    },
    components: {
      // 自定义组件
      tree: {
        // 组件的名称
        name: 'tree',
        // 模板
        template: `
            <ul>
               <li v-for="item in treeData">
                 <span>{{item.title}}</span>
             <!-- 在组件内部调用自己 -->
                 <tree v-if="item.children" :treeData="item.children"></tree >
               </li>
            </ul>`,
        // 通过父组件传递的数据
        props: ['treeData']
      }
    },
    methods: {}
  }
</script>

2.当我们使用vue.js官方提供的调试工具调试

可以看到组件的名称,更好地定位

3.最后一种应该是使用比较多的情况

就是当我们使用 keep-alive时可以使用include和exclude指定需要缓存和不需要缓存的组件。指定的依据就是组件的name。

这就是vue.js中组件export default 中name的三种作用。调试和keep-alive是我们开发中常用的功能,关于组件的递归调用,还是第一次实践,递归时,大家一定要注意递归的条件,否则会进入死循环。

Vue如何获取组件name属性

Vue在编写组件时一般都会显式的指明其name属性

获取name属性

this.$options.name

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue组件name的作用小结

    我们在写vue项目的时候会遇到给组件命名 这里的name非必选项,看起来好像没啥用处,但是实际上这里用处还挺多的 export default { name:'xxx' } 1.当项目使用keep-alive时,可搭配组件name进行缓存过滤 举个例子: 我们有个组件命名为detail,其中dom加载完毕后我们在钩子函数mounted中进行数据加载 export default { name:'Detail' }, mounted(){ this.getInfo(); }, methods:{

  • 解决vue中修改export default中脚本报一大堆错的问题

    在写vue代码的时候遇到了一修改.vue文件中export default下脚本的时候总是报一堆莫名其妙的错误的问题: 出错原因: 在构建项目的时候Use ESLint to lint your code? (Y/n)选择了y,规范了js代码 解决途径: 在webpack.base.conf.js里面删掉/注释掉: { test: /\.(js|vue)$/, loader: 'eslint-loader', enforce: 'pre', include: [resolve('src'), r

  • vue自定义组件(通过Vue.use()来使用)即install的用法说明

    在vue项目中,我们可以自定义组件,像element-ui一样使用Vue.use()方法来使用,具体实现方法: 1.首先新建一个Cmponent.vue文件 // Cmponent.vue <template> <div> 我是组件 </div> </template> <script> export default { } </script> <style scoped> div{ font-size:40px; col

  • Vue export default中的name属性有哪些作用

    目录 Vue export default的name属性作用 1.组件自身的递归调用 2.当我们使用vue.js官方提供的调试工具调试 3.最后一种应该是使用比较多的情况 Vue如何获取组件name属性 Vue export default的name属性作用 在划分模块和创建单页面组件时,常常写到name.嵌套路由中,index.vue极为常见. 那么在vue中,export default { name: ‘xxx’} 中的name到底有啥作用呢? 还是先回到官方的文档:官方链接 官方文档已经

  • 解决Vue 给mapState中定义的属性赋值报错的问题

    1. 实践环境 Vue 2.9.6 2. 问题描述 <script> import { mapState } from 'vuex'; export default { name: "displayCount", computed: { ...mapState({ ...略 count: state => state.a.count }) }, methods: { increaseCount () { this.count = this.count + 1 } }

  • vue 注释template中组件的属性说明

    目录 注释template中组件属性 实例中的template讲解 调试图片 原理说明图片 终极结论 注释template中组件属性 想注释一个组件的属性,一直报错 [vue/no-parsing-error] Parsing error: unexpected-character-in-attribute-name 因为项目中引入了eslint-plugin-vue,对template有默认检测,因此就直接修改.eslintrc.js文件 "unexpected-character-in-at

  • 详解Vue改变数组中对象的属性不重新渲染View的解决方案

    在解决问题之前,我们先来了解下 vue响应性原理: Vue最显著的一个功能是响应系统-- 模型只是一个普通对象,修改对象则会更新视图. 受到javascript的限制,Vue不能检测到对象属性的添加或删除,因为vue在初始化实列时将属性转为getter/setter,所以属性必须在data对象上才能让vue转换它. 但是vue可以使用 Vue.set(object, key, value)方法将响应属性添加到嵌套的对象上:如下代码: Vue.set(obj, '_isHover', true);

  • Vue项目中new Vue()和export default{}的区别说明

    目录 new Vue()和export default{}区别 new Vue() export default{} import,export和export default注意问题 new Vue()和export default{}区别 在生成.导出.导入.使用 Vue 组件的时候,像我这种新手就会常常被位于不同文件的 new Vue() 和 export default{} 搞得晕头转向.它们含义到底是什么,又有什么异同呢? new Vue() 首先,Vue 是什么? 我看其他博主的理解,

  • Vue v2.4中新增的$attrs及$listeners属性使用教程

    前言 多级组件嵌套需要传递数据时,通常使用的方法是通过vuex.如果仅仅是传递数据,而不做中间处理,使用 vuex 处理,未免有点杀鸡用牛刀.Vue 2.4 版本提供了另一种方法,使用 v-bind="$attrs", 将父组件中不被认为 props特性绑定的属性传入子组件中,通常配合 interitAttrs 选项一起使用.之所以要提到这两个属性,是因为两者的出现使得组件之间跨组件的通信在不依赖 vuex 和事件总线的情况下变得简洁,业务清晰. 首先分析以下应用场景: A 组件与 B

  • Vue 单文件中的数据传递示例

    Vue 的单文件组件在使用 Vue 时非常常用,所以我们也会经常遇到组件之间需要传递数据的时候,大致分为三种情况: 父组件向子组件传递数据,通过 props 传递数据. 子组件向父组件传递数据,通过 events 传递数据. 两个同级组件之间传递数据,通过 event bus 传递数据. 文档中也已经详细的说明了各种情况下的解决方法,但是现在我在还没有阅读多少文档的情况下,没有找到有单文件组件方面的具体书写方式,智商和理解能力有限的情况下,自己尝试了一下,最后发现其实是一样的.所以这篇文章其实是

  • vue在组件中使用v-model的场景

    目录 一.使用场景 二.V-Model的本质 三.关键步骤 1. props 的使用 2. $emit 的使用 3. 关键的 model 四.不使用 model 选项的 v-model 1. 父组件 home 2. 子组件homeChild 3. 效果 五.用 model 选项的 组件使用 v-model 1.父组件 2. 子组件 一.使用场景 子组件想要使用父组件的值,又想去改父组件的值 二.V-Model的本质 1.给子组件的 value 传个变量 2.监听子组件的input事件,并且把传过

  • vue和react中props变化后如何修改state

    目录 vue和react中props变化后修改state 改进 react改变state必须知道的知识点 1.不能直接修改state 2.state的更新是异步的 3.state的更新是一个合并的过程 state与不可变对象 vue和react中props变化后修改state 如果只想在 state 更改时重新计算某些数据,比如搜索框案例. vue <template> <div> <input type="text" v-model="filt

随机推荐