Heim > Web-Frontend > js-Tutorial > Hauptteil

Löst jeder „setState'-Aufruf ein React Render aus?

Linda Hamilton
Freigeben: 2024-11-12 13:28:02
Original
452 Leute haben es durchsucht

Does Every `setState` Call Trigger a React Render?

ReactJS – Wird das Rendern bei jedem „setState“-Aufruf ausgelöst?

React unterscheidet zwischen seinem virtuellen DOM und dem nativen DOM. Wenn eine Komponente eine Statusaktualisierung erhält, wird ihre Rendermethode aufgerufen. Dadurch wird eine neue virtuelle DOM-Darstellung der Komponente generiert. Es ist jedoch wichtig zu beachten, dass React das native DOM nicht sofort aktualisiert.

Standardverhalten: Bei jeder Statusaktualisierung erneut rendern

Standardmäßig geht React davon aus dass jede Zustandsänderung ein erneutes Rendern der Benutzeroberfläche erfordert. Dadurch wird sichergestellt, dass die Benutzeroberfläche immer auf dem neuesten Stand ist.

Virtuelles DOM-Rendering vs. natives DOM-Rendering

Wenn das Rendern ausgeführt wird, wird ein neues generiert virtuelles DOM. Diese Phase hat keine Auswirkungen auf das native DOM. Anschließend vergleicht React das neue virtuelle DOM mit dem vorherigen und aktualisiert nur die tatsächlichen Elemente im Browser, die sich geändert haben. Diese Optimierung verhindert unnötiges erneutes Rendern und minimiert Browser-Reflows und Neulackierungen.

Kann ich das erneute Rendern optimieren?

Sie können die Lebenszyklusmethode ShouldComponentUpdate zur Feinabstimmung implementieren wenn eine Komponente erneut gerendert wird. Es werden zwei Argumente benötigt:

  • nextProps: Der nächste Satz von Requisiten, die die Komponente erhält
  • nextState: Der nächste Status der Komponente

Sie können Verwenden Sie ShouldComponentUpdate, um zu überprüfen, ob sich die kommenden Requisiten und der Status erheblich von den aktuellen unterscheiden. Ist dies nicht der Fall, können Sie false zurückgeben, um ein erneutes Rendern zu verhindern und die Leistung zu verbessern.

Beispiel

Im bereitgestellten Beispiel werden sowohl übergeordnete als auch untergeordnete Komponenten erneut gerendert bei jedem Klick, auch wenn der Status in der übergeordneten Komponente unverändert bleibt. Dies liegt daran, dass setState immer ein erneutes Rendern des virtuellen DOM auslöst und React davon ausgeht, dass die Benutzeroberfläche aktualisiert werden muss. Um in solchen Szenarien unnötiges erneutes Rendern zu verhindern, können Sie ShouldComponentUpdate implementieren, um zu überprüfen, ob sich der Status tatsächlich geändert hat.

Das obige ist der detaillierte Inhalt vonLöst jeder „setState'-Aufruf ein React Render aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage