内置指令
v-for 数据循环,操作dom元素
> 普通数组
> 对象数组
> 对象
> 数字(迭代数字要注意:从1开始)
> 字符串
语法:of 也可以,但是最好用 in
v-for ( (item,index) in data )
vue 2.5+版本要求循环的时候 必须增加key属性
为了做domdiff,但是最好不要用索引index设key,因为只要一个元素发生变化,那么左右元素的索引都会发生变化,diff算法是比较同级之间的不同,以key来进行关联,假如删除一条数据,后面所有的key都会改变,就会重新渲染,导致性能浪费。
<!-- vue-bind 是动态绑定属性 -->
<!-- template vue自带的标签 无意义的标签 template上不能增加key属性 需要给真实的元素加 -->
<div id = "app">
<!-- 这样会循环出多个div -->
<div v-for= "(item,index) of arr" :key='index'>
<li >{{item.label}}</li>
</div>
<!-- 这样只渲染li -->
<template v-for="(item,index) of arr">
<li :key=`${index}_1`>{{item.label}}</li>
</template>
v-if 和 v-show 的区别
1) v-if 是处理dom是否添加到页面上,v-show 是增加到页面上,显示和隐藏的操作,相当于style的操作。
2)v-if可以使用template,v-show不可以