React为什么不建议用数组的索引index作为key值?

掘金的一篇文章有gif展示,是我看到的最容易理解的一篇讲解。

https://juejin.im/post/5e9d83436fb9a03c917fe728

看完相信就理解了

总结:当以数组的下标index作为key值时  其中一个元素发生了变化 就有可能导致所有元素的key值发生改变 。diff算法是比较同级之间的不同并以key值来进行关联。当对数组进行下标的变换时,比如删除第一条数据,那么以后所有的Index都会发生改变,那么key值自然也跟着全部发生改变,所以index作为key值是不稳定的,这种不稳定性有可能导致性能的浪费,导致diff无法关联起上一次一样的数据 。因此,能不用Index作为key就不要用Index。 

在平时的开发过程中, 因为我们的数据绝大部分都是从后台获取来的. 数据库中每一条数据都会一个 id 作为唯一标识,而这个 id 也是我们最常使用作为 key 值的来源。

猜你喜欢

转载自blog.csdn.net/a1059526327/article/details/106819237