老师有个小问题

来源:1-2 内容组件--数据获取和显示

CC陈十一

2019-07-01 09:48:28

:key到底有什么用

写回答

1回答

好帮手慕夭夭

2019-07-01

你好同学,简单的讲key就是给元素设置一个唯一的标识。给同学举一个小例子,如下:

当选中荔枝的时候,如果没有key值给元素作为唯一的标识,那么添加新元素的时候更新结构后,此时变成了菠萝被选中。

没有添加元素:

http://img.mukewang.com/climg/5d1984170001b3ae04000125.jpg

添加元素后:

http://img.mukewang.com/climg/5d1984ae0001dc8803750143.jpg

如果加key作为标识之后,效果就正确了:

http://img.mukewang.com/climg/5d1986f20001613f03500149.jpg

这个现象是由于vue自身的机制有关,即Diff算法,老师给你简单讲解一下,同学作为课程了解一下就行:

当a,b,c中间想要插入一个z,

http://img.mukewang.com/climg/5d1985550001ee4e04800193.jpg

diff算法默认会按照如下去更新,即b更新成z ,c更新成b,最后插入一个c .因为没有标识这样很麻烦

http://img.mukewang.com/climg/5d1985c30001a9e403780173.jpg

所以这个时候key体现了很大的作用,给每一个元素做个标记。这要diff算法可以正确识别每一个元素,从而正常的更新数据。

http://img.mukewang.com/climg/5d1986750001e0ad03550255.jpg

祝学习愉快,望采纳。

0

0 学习 · 10739 问题

查看课程