2 Matching Annotations
- Jun 2024
-
legacy.reactjs.org legacy.reactjs.org
-
Keys
diff算法中关于key的两个问题
1.如果列表元素中不指定key属性,会有什么问题?
1.1 如果从列表尾增加元素直接插入,如果从列表头增加元素就需要重新构建整个列表元素子树。(从非尾部操作会导致后续一致的部分无法复用,会有一定的性能问题)
1.2 如果插入两个类型一致,值一致的节点,在删除时,会同时删除两个节点。
2.如果列表元素中用idx作为key属性,会有什么问题?
2.1 从非列表尾部操作(增、删、改)会导致渲染错误。
2.1.1 增:最后一个元素显示两次
2.1.2 删:最后一个元素不显示
2.1.3 改:改了没效果
-
The developer can hint at which child elements may be stable across different renders with a key prop.
开发者可以用key属性标记在不同渲染中哪些子元素是可能稳定的
-