当前位置:网站首页>index为什么不能作为v-for的key?
index为什么不能作为v-for的key?
2022-07-24 05:17:00 【蛞蝓不孤寡】
index为什么不能作为v-for的key?
一、为什么要使用key?
key 的作用主要是为了高效地更新虚拟DOM。
例如,在B和C之间插入F:
Diff 算法默认执行的过程:
这种做法C更新成F,D更新成C,E更新成D,最后再插入E,这样效率不高,且性能不够好。
但如果使用了key给每个节点做一个唯一标识,Diff算法就能正确地识别这个节点,找到正确的位置插入新的节点。

二、index为什么不能作为v-for的key?
以下面代码为例,删除 'one':
<template>
<div v-for="(item, index) in list" :key="index" >{
{item.num}}</div>
</template>
const list = [
{
id: 0,
num: "zero"
},
{
id: 1,
num: "one"
},
{
id: 2,
num: "two"
},
{
id:3,
num:"three"
}
];
删除前:
| key | id | index | num |
|---|---|---|---|
| 0 | 0 | 0 | zero |
| 1 | 1 | 1 | one |
| 2 | 2 | 2 | two |
| 3 | 3 | 3 | three |
删除后:
| key | id | index | num |
|---|---|---|---|
| 0 | 0 | 0 | zero |
| 1 | 2 | 1 | two |
| 2 | 3 | 2 | three |
此时,除zero外,two和three因为被发现与相应key的绑定关系有变化,所以被重新渲染,容易影响性能。
边栏推荐
猜你喜欢
随机推荐
C语言入门篇 概述
Ain 0722 sign in
用C语言写出三子棋
Neo4j修改标签名
Tips for using the built-in variable vars in BeanShell
C语言进阶篇 二. 指针
跟李沐学ai 线性回归 从零开始的代码实现超详解
C2 random generation function seed, numpy. Random. Seed(), TF. Random. Set_ Seed Learning + reprint and sorting
scikit-learn笔记
VS 调试
C语言从入门到入土——操作符超详细总结
【【【递归】】】
select_渲染小现象
csgo部分常用服务器指令与一些绑定指令整理
Web development
T 6-10
输入10个人的名字,按从大到小排序输出
libevent多线程服务端+客户端源码
day(0~6)代表每月第一天起始位置,stop代表每月天数,每天之间空两个空格。输入不同的day和stop,输出每月日历的样子。假设day为2,stop为31,则输出样式为
Opengl模拟现实生活中,球掉到地面上再弹起来的过程,在屏幕上绘制一个球,球从上往下掉,碰到地面,再弹起来。









