V-for中的key属性
(一)为什么需要这个key属性?
- 这个其实和Vue的的虚拟DOM的diff算法有关系
(二)当某一层有很多相同的节点时,也就是列表节点时,我们希望插入一个新的节点
- 我们希望可以在B和C之间加一个F,Diff算法默认执行起来是这样的
- 即把C更新成F,D更新C,E更新成D,最后插入F,很没有效率(数据结构链表)
(三)所以我们需要使用key来给每个节点做一个唯一标识
- Diff算法就可以正确的识别此节点
- 找到正确的位置区插入新的节点
四)key的作用主要是为了高效的更新虚拟DOM
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<ul>
<li v-for="item in letters">{{item}}</li>
<hr>
<hr>
<li v-for="item in letters" :key="item">{{item}}</li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
const app = new Vue({
el:"#app",
data:{
//splice向数组中插入值,第一个参数是从哪个位置开始,第二个参数是删除几个元素,第三个参数是插入的值
letters:['A','B','C','D','E']
}
})
</script>
</body>
</html>