我在React中实现了一个树形视图。树视图具有拖放功能,其中节点可以在父级之间来回移动。
考虑到这一点,当React协调我的组件树时:
<TreeNode key="item1">
<TreeNode key="item2"/>
<TreeNode key="item3"/>
<TreeNode key="item4"/>
</TreeNode>
类似这样的东西:
<TreeNode key="item1">
<TreeNode key="item2"/>
<TreeNode key="item3"/>
</TreeNode>
<TreeNode key="item4"/>
它会保留item4
(即不卸载并重新挂载它)吗?有没有什么方法可以强制它在将组件移动到新的父级时保持该组件的完整性,或者React在协调兄弟项时只考虑key
s?
发布于 2017-02-14 22:02:56
首先,只是澄清一下- React元素不应该被“保留”-它是底层的DOM元素将被“保留”。
React将在有可能的情况下尝试重用DOM。
key属性决定了如何处理DOM元素。只要键存在于随后的渲染过程中,就会重用DOM并更新内容。
引用https://facebook.github.io/react/docs/reconciliation.html#recursing-on-children
当子对象具有关键字时,React使用该关键字将原始树中的子项与后续树中的子项进行匹配。
https://stackoverflow.com/questions/42236664
复制相似问题