防止通过自定义键重复使用组件?

时间:2018-12-20 22:27:38

标签: javascript reactjs

我有许多小的React编辑器组件,它们会收到一个文档道具。我不希望它们被重用,所以我给它们添加了一个密钥:

<Editor key={doc1.id} doc={doc1}/>

我很想自动从组件类内部的doc.id派生密钥。这可能吗?

我的目标是让我更清洁:

<Editor doc={doc1}/>

1 个答案:

答案 0 :(得分:0)

键是一种特殊的机制,用于使组件的身份无效(docs明确提到了身份问题键正在解决):如果反应树中的反应元素仅在两次渲染过程中其键不同,则其基础组件将被卸载并重新安装。键主要在呈现列表时使用,或强制卸载/装载特定组件。所以您的问题的答案是否定的

如果没有任何变化,React已经尝试重用许多dom状态,并且可以使用lyfecycle方法来防止不必要的重发:shouldComponentUpdate。但是,正如文档所述使用此生命周期的状态应被认为是性能优化,并且将来将被视为提示而不是指令。除非存在特定的性能问题,否则可能是IMO提前优化。