【发布时间】:2021-04-06 12:38:03
【问题描述】:
我阅读了这篇关于 'why using index as a key is an anti pattern' 的文章,并很好奇为什么我的项目在使用基于索引的键矩阵时效果如此出色。
我从事俄罗斯方块项目,每秒钟,具有 20 * 24 单元格的矩阵重新渲染和移动 tetromino。数组的每个单元格都包含字母表,它成为分区的className,并决定单元格的颜色,并且在四联体移动的每一秒,它都运行良好。
从他的文章示例和this question 来看,如果 key 没有改变,react 不会改变那个 DOM 元素并为数组中的新项目添加新的 DOM。所以我的俄罗斯方块阶段不应该更新视图,因为键不会改变。我很困惑反应键是如何工作的。
我搜索了很多文章,但我只能找到它们用于优化和比较 DOM,而不是如何。所以我想知道,key是如何工作的,以及他们在改变Virtual Dom之前和改变Virtual DOM之后做了什么样的程序来比较
【问题讨论】: