我读了这篇关于“为什么使用索引作为键是一种反模式”的文章,并且很好奇为什么我的项目在使用基于索引的键矩阵时效果如此之好。
我从事俄罗斯方块项目,每秒钟,具有 20 * 24 单元格的矩阵重新渲染和移动 tetromino。数组的每个单元格都包含字母表,它成为部门的 className 并决定单元格的颜色,并且当 tetromino 移动的每一秒,它都工作得很好。
从他的文章的例子和这个问题中,如果 key 没有改变,react 不会改变那个 DOM 元素并为数组中的新项目添加新的 DOM。所以我的俄罗斯方块阶段不应该更新视图,因为键不会改变。我很困惑反应键是如何工作的。
我搜索了很多文章,但我只能找到它们用于优化和比较 DOM,而不是如何。所以我想知道,key是如何工作的,以及他们在更改Virtual Dom之前和更改Virtual DOM之后做了什么样的程序来比较