v-for指令
基本语法
<li v-for:"(item,index) of items" key="index">
index是循环指针,key可以是index,但是更好是遍历对象的唯一标识符
key作用和原理
虚拟DOM中key的作用:key是虚拟DOM中对象的标识,当数据变化,vue会根据新数据生成新虚拟DOM,随后进行diff算法新旧虚拟DOM差异比较,对比规则如下:
- 旧虚拟DOM中找到了和新虚拟DOM中相同的key
若虚拟DOM中内容未变,直接使用之前的虚拟DOM
若虚拟DOM中内容变了,则根据新虚拟DOM生成DOM,替换之前的DOM- 旧虚拟DOM中未找到与新虚拟DOM相同的key
创建DOM,渲染到页面


index作为key会引发的问题
对数据的逆序操作会产生没有必要的DOM更新
列表中有输入类DOM更新会产生错误的DOM更新,页面会出现问题
网友评论