本系列博客汇总在这里:Vue.js 汇总
v-for 指令
源码工程文件为:
一、v-for 遍历数组
当我们有一组数据需要进行渲染时,我们就可以使用 v-for
来完成。
v-for 的语法类似于 JavaScript 中的 for 循环。
格式:item in items
如果在遍历的过程中不需要使用索引值
依次从 array 中取出元素,并且在元素的内容中,我们可以使用 Mustache 语法,来使用元素。
如果在遍历的过程中,我们需要拿到元素在数组中的索引值呢?
语法格式:v-for=(item, index) in items
,其中的 index
就代表了取出的 item
在原数组的索引值。
二、v-for 遍历对象
比如某个对象中存储着你的个人信息,我们希望以列表的形式显示出来。
三、组件的 key 属性
官方推荐我们在使用 v-for
时,给对应的元素或组件添加上一个 :key
属性。
为什么需要这个 key 属性呢(了解)?
这个其实和 Vue 的虚拟 DOM 的 Diff 算法有关系,这里我们借用 React’s diff algorithm 中的一张图来简单说明一下:
当某一层有很多相同的节点时,也就是列表节点时,我们希望插入一个新的节点。
我们希望可以在 B 和 C 之间加一个 F,Diff 算法默认执行起来是这样的。
即把 C 更新成 F,D 更新成 C,E 更新成 D,最后再插入 E,是不是很没有效率?
所以我们需要使用 key 来给每个节点做一个唯一标识
- Diff 算法就可以正确的识别此节点
- 找到正确的位置区插入新的节点
所以一句话,key 的作用主要是为了高效的更新虚拟 DOM。
如有错误,欢迎指正!