在很多情况下,我们可能会倾向于使用index作为key值,因为index默认就是唯一的。但是,Vue官方不推荐使用index作为key值的原因主要有以下几点: 状态不稳定:在Vue的开发中,数据是动态变化的,当数据发生变化时,新的元素可能被添加到数组的开头、中间或末尾等位置,这样原本的index值就会发生改变,导致key与实际内容不匹配,可...
为什么v-for中的key值不推荐使用index 一、目的: 1、key的作用主要是为了高效的更新虚拟DOM。(此类原理可查看各类文档) 2、防止不必要的bug出现。 二、如果使用index作为key来使用,会出现bug情形。 如果仅是为了高效更新DOM,可能人们不会在意,殊不知,使用index作为key,还会出现bug,如下情景会有bug。 情形:当你有...
一般来说,我们只做数据的渲染就可以使用index作为key值,并没有什么问题,但是涉及到数据的操作,比如添加或删除数据的时候就不要用了,毕竟尤雨溪和Vue团队为我们提供了这么强大的Diff算法。 既然key的值要有唯一性,那么大家思考这样一个问题,我们可以用Math.random()作为key的值吗? 哈哈哈哈哈,当然是不可以的了,如果...
根据上面的内容,我们可以知道:在 type 不变的前提下,key 就决定了 dom 是否要重新渲染。 假如,我们使用 index 作为 key,同时使用 unshift 方法为数组添加了一个新的元素,那么所有的 index 都会发生变化,从而导致:isSameVNodeType 返回 false,即:所有的 dom 全部重新渲染 从而影响性能...
v-for 中 key 值是否可以为 index 答案当然是不可以,举个例子,我们来看下面两个 vdom,从 num 值我们可以发现,新、旧两个 vdom 是两个顺序相反的数组生成的 vdom,安装正常的方式,应该是简单调换一下顺序,直接复用3个元素即可,而当我们以 index 作为 key 时,情况就不同了,由于 index 永远都是从 0 开始,...
简介: 深入剖析Vue中v-for的使用及index作为key的弊端 列表渲染v-for 我们可以使用 v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法,其中 items 是源数据的数组,而 item 是迭代项的别名,v-for 也支持使用可选的第二个参数表示当前项的位置索引。 data() { ...
Vue模板中使用v-for指令时不建议将index作为:key属性。今天我在看项目代码时,发现有多年开发经验的前端老鸟也犯这样的低级错误。 今天我们就从其原理上说明为什么不建议将index作为v-for的key,除非你能确定该v-for遍历的数组长度始终不会发生变化,不过在这个需求多变的时代谁能保证产品不会想一出是一出呢?
先说答案,因为绑定key值是为了,渲染虚拟dom时用key作为标识,做到局部更新。不使用index作为key是因为 ...
v-for 中的key值: 使用v-for更新已渲染的元素列表时,默认用就地复用策略;列表数据修改的时候,他会根据key值去判断某个值是否修改,如果修改,则重新渲染这一项,否则复用之前的元素; 我们在使用的使用经常会使用index(即数组的下标)来作为key,但其实这是不推荐的一种使用方法; ...
Vue学习-vue中v-for为何要加key?index为何不推荐作为key <template> 无key: 添加 {{ item.name }} index为key: 添加