可遍历数组、对象、整数
vue核心是数据和视图的双向绑定,修改数组
1、变异方法,改变原数组,触发视图更新
- push
- unshift
- pop
- shift
- splice
- sort
- reverse
2、非变异方法,返回新数组,不触发视图更新
- conact
- slice
- filter
3、修改数组,不触发视图更新方式
- 用索引修改数组项--》this.$set()
- 直接修改数组长度--》splice()
4、不想修改原数组,想用副本来过滤或者排序数据
computed:{
filterBooks(){
}
}
5、key作用
vnode虚拟dom,diff算法同级比对,修改前后的dom一级一级的比对,当比对到某一层级时,发现有很多相似的节点,也就是列表节点,默认情况下还是同级比对
给节点添加key,作为唯一标识,key和内容进行了绑定,可以快速找到节点,高效更新dom
6、index作为key
不足: (1)与没有key是一样的 (2)仅适用于不依赖子组件状态或者临时dom状态的列表渲染
<div v-for="(item,index) in list" :key="index">
<demo></demo>
<button @click="delClick(index)">删除</button>
</div>
<div v-for="(item,index) in list" :key="index">
<input type="text">
<button @click="delClick(index)">删除</button>
</div>
7、总结
diff算法默认使用“就地复用”策略,是一个交叉比对过程 同级比对,比对tag和key 用唯一值作为key,最大程度的利用dom,提升性能
8、参考: www.jianshu.com/p/4bd5e745c… www.cnblogs.com/youhong/p/1…