Wenn eine Komponente durch Aufrufen von setState aktualisiert wird, führt React den Diffing-Algorithmus für die gesamte DOM-Struktur oder nur für den Teil der aktualisierten Komponente aus?Reagiert immer der ganze Baum?
Zum Beispiel, wenn ich 10000 Komponenten in meiner App habe und setState in einer Komponente aufrufen, die keine Kinder hat (es ist ein Blatt des Baumes), wird React den gesamten großen DOM-Baum durchlaufen (was langsam wäre) nur der DOM-Baum, der von der Komponente generiert wird (was viel schneller wäre)?
Es ist wichtig zu verstehen, dass wenn Sie setState für eine Komponente aufrufen, alle seine Unterbäume Komponenten gerendert werden. Um diese Leistungseinschränkung zu vermeiden, müssen wir intelligent 'boolean shouldComponentUpdate (Objekt nextProps, object nextState) verwenden. –
Dies ist ein guter Punkt und es ist wichtig zu verstehen, dass setState einen großen Effekt haben kann, wenn Sie es höher in der Struktur aufrufen und diesen Staat durch Requisiten auf mehrere Ebenen herunterlassen. Ich mag das [erweiterte Leistungslink] (https://facebook.github.io/react/docs/advanced-performance.html), das die oben beschriebene Strategie der Verwendung von sollteComponentUpdate beschreibt. –
Auch, obwohl es eher ein fortgeschrittenes Thema ist, kann die Verwendung von [unveränderlichen Datenstrukturen] (https://facebook.github.io/immutable-js/) und die Weitergabe dieser als Requisiten einen großen Gewinn für die Performance haben, besonders in der shouldComponentUpdate Methode. –