Ich erstelle eine große Anwendung mithilfe von React, wobei eine gemeinsame übergeordnete Komponente den gesamten Status für mehrere untergeordnete Elemente verarbeitet. Einige dieser Kinder machen Listen von über 1000 Elementen.ReactJS - Leistungsimplikation von `setState` in der übergeordneten Komponente
Ich realisiere, dass das Umschalten eines Boolean innerhalb des Elternteils mit setState
den Eltern wieder rendern wird, der wiederum alle seine untergeordneten Elemente wieder rendert.
Meine Frage ist, wenn keine der Listenelemente für das Kind ändert, dann führt das erneute Rendern dazu, dass das Kind die gigantische Liste durchläuft und erneut erstellt - jedes Mal, wenn das Elternobjekt erneut gerendert wird?
Wo spielt das virtuelle DOM eine Rolle? Erstellt das Kind die Liste neu, aber das DOM muss nie aktualisiert werden, weil das Diff erkennt, dass sich die Listenelemente nicht geändert haben?
Bearbeiten: Schließlich, wenn das der Fall ist, wie wirkt sich die key
Eigenschaft auf die Liste neu zu rendern? Wenn ich 1000 Elemente habe alle mit eindeutigen Schlüsseln, aber 3 Elemente haben Schlüssel, die null
sind, (was bedeutet, sie haben den gleichen Schlüssel Wert) dann macht die gesamte Liste neu rendern?
nett! Der Abgleichsdoc liefert eine Menge guter Informationen, nach denen ich suche! Es hat mich dazu gebracht, eine andere Frage bezüglich der Schlüsseleigenschaft mit Kinderkomponenten zu stellen. – jacoballenwood