是否可以重新渲染数组中的一个元素,同时避免其他元素被重新渲染?
示例:如果有一个包含500个<Card>
组件的数组,并编辑第27个<Card>
(这会更新myArray
属性),我想仅重新渲染第27个<Card>
。
render = () => {
this.props.myArray.map(card => {
return <Cards key={card.id} ...card />
})
}
在我的情况下,
<Card>
组件有点重,我想避免在它们没有单独改变的情况下重新渲染它们,但是一旦 myArray
属性发生变化并触发 render()
方法,每个单独的 <Card>
都将被重新渲染,这会导致每个 <Card>
改变都可能存在性能问题。
Card
改为PureComponent
,或者在其中使用shouldComponentUpdate
。 - Gabriele Petrioli