vue组件name的作用小结


Posted in Javascript onMay 23, 2018

我们在写vue项目的时候会遇到给组件命名

 这里的name非必选项,看起来好像没啥用处,但是实际上这里用处还挺多的

export default {
   name:'xxx'
}

1.当项目使用keep-alive时,可搭配组件name进行缓存过滤

 举个例子:

 我们有个组件命名为detail,其中dom加载完毕后我们在钩子函数mounted中进行数据加载

export default {
  name:'Detail'
},
mounted(){
  this.getInfo();
},
methods:{
  getInfo(){
     axios.get('/xx/detail.json',{
       params:{
        id:this.$route.params.id 
       }
     }).then(this.getInfoSucc)
   }
 }

因为我们在App.vue中使用了keep-alive导致我们第二次进入的时候页面不会重新请求,即触发mounted函数。

 有两个解决方案,一个增加activated()函数,每次进入新页面的时候再获取一次数据。

 还有个方案就是在keep-alive中增加一个过滤,如下图所示:

<div id="app"> 
  <keep-alive exclude="Detail">
   <router-view/>
  </keep-alive>
 </div>

2.DOM做递归组件时

 比如说detail.vue组件里有个list.vue子组件,递归迭代时需要调用自身name

list.vue:

<div>
    <div v-for="(item,index) of list" :key="index">
      <div>
        <span class="item-title-icon"></span>
        {{item.title}}
      </div>
      <div v-if="item.children" >
        <detail-list :list="item.children"></detail-list>
      </div>
    </div>
 </div>
<script>
export default {
  name:'DetailList',//递归组件是指组件自身调用自身
  props:{
    list:Array
  }
}
</script>

list数据:

const list = [{
     "title": "A",
     "children": [{
      "title": "A-A",
      "children": [{
       "title": "A-A-A"
      }]
     },{
        "title": "A-B"
     }]
    }, {
     "title": "B"
    }, {
     "title": "C"
    }, {
     "title": "D"
    }]

迭代的结果如下:

vue组件name的作用小结

3.当你用vue-tools时

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

vue组件name的作用小结

总结

以上所述是小编给大家介绍的vue组件name的作用小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript效率调优经验
Jun 04 Javascript
基于jquery的$.ajax async使用
Oct 19 Javascript
JavaScript获得表单target属性的方法
Apr 02 Javascript
ES6中非常实用的新特性介绍
Mar 10 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
Aug 24 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
基于bootstrap风格的弹框插件
Dec 28 Javascript
浅谈Angular.js中使用$watch监听模型变化
Jan 10 Javascript
微信小程序教程系列之新建页面(4)
Apr 17 Javascript
React Native基础入门之初步使用Flexbox布局
Jul 02 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
May 17 jQuery
linux 后台运行node服务指令方法
May 23 #Javascript
node.js部署之启动后台运行forever的方法
May 23 #Javascript
jquery引入外部CDN 加载失败则引入本地jq库
May 23 #jQuery
jQuery实现form表单序列化转换为json对象功能示例
May 23 #jQuery
让Vue也可以使用Redux的方法
May 23 #Javascript
微信小程序排坑指南详解
May 23 #Javascript
关于vue-router的那些事儿
May 23 #Javascript
You might like
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
golang与PHP输出excel示例
2016/07/22 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
JS中的三个循环小结
2017/06/20 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
在python中画正态分布图像的实例
2019/07/08 Python
django解决订单并发问题【推荐】
2019/07/31 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
Python 创建TCP服务器的方法
2020/07/28 Python
儿科护士实习自我鉴定
2013/10/17 职场文书
婚礼证婚人证婚词
2014/01/13 职场文书
司马光教学反思
2014/02/01 职场文书
战略合作协议书范本
2014/04/18 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书