我有许多小的React编辑器组件,它们会收到一个文档道具。我不希望它们被重用,所以我给它们添加了一个密钥:
<Editor key={doc1.id} doc={doc1}/>
我很想自动从组件类内部的doc.id派生密钥。这可能吗?
我的目标是让我更清洁:
<Editor doc={doc1}/>
答案 0 :(得分:0)
键是一种特殊的机制,用于使组件的身份无效(docs明确提到了身份问题键正在解决):如果反应树中的反应元素仅在两次渲染过程中其键不同,则其基础组件将被卸载并重新安装。键主要在呈现列表时使用,或强制卸载/装载特定组件。所以您的问题的答案是否定的
如果没有任何变化,React已经尝试重用许多dom状态,并且可以使用lyfecycle方法来防止不必要的重发:shouldComponentUpdate。但是,正如文档所述使用此生命周期的状态应被认为是性能优化,并且将来将被视为提示而不是指令。除非存在特定的性能问题,否则可能是IMO提前优化。