Ich habe eine Komponente, die eine Liste von Elementen, wie diese hat:Wird reagieren alle alten Domänen in der Komponente zerstören, wenn der Zustand geändert wird?
loadMore() {
const len = this.state.itemList.length;
if (len < 1000) {
const newItems = Array.from({length:10}, (v,i) => "item-" + (i+len));
this.setState({itemList: this.state.itemList.concat(newItems)});
} else {
alert("no more");
}
}
render() {
return (
<div>
<ul>
this.state.itemList.map((item, i) =>
<li key={i}>item</li>
)
</ul>
<a onClick={this.loadMore.bind(this)}>Loading</a>
</div>
)
}
Also, wenn ich Loading
klicken, alle alten doms reagieren entfernen Sie sie dann neu erstellen?
In der Tat, ich füge nur Elemente, nicht ersetzen sie, also wenn reagieren dies tun, ist die Leistung nicht so gut, Wie kann ich das vermeiden?
Nach meinem Verständnis wird React die Elemente nicht zerstören und neu erstellen, solange sie richtig codiert sind. Es fügt nur die neuen Elemente hinzu. – SArnab
und Indizes als Schlüssel verwenden ist keine gute Idee – erdysson
@erdysson also, was ist die bessere Wahl? – roger