掘金的一篇文章有gif展示,是我看到的最容易理解的一篇讲解。
https://juejin.im/post/5e9d83436fb9a03c917fe728
看完相信就理解了
总结:当以数组的下标index作为key值时 其中一个元素发生了变化 就有可能导致所有元素的key值发生改变 。diff算法是比较同级之间的不同并以key值来进行关联。当对数组进行下标的变换时,比如删除第一条数据,那么以后所有的Index都会发生改变,那么key值自然也跟着全部发生改变,所以index作为key值是不稳定的,这种不稳定性有可能导致性能的浪费,导致diff无法关联起上一次一样的数据 。因此,能不用Index作为key就不要用Index。
在平时的开发过程中, 因为我们的数据绝大部分都是从后台获取来的. 数据库中每一条数据都会一个 id 作为唯一标识,而这个 id 也是我们最常使用作为 key 值的来源。