React 18 – die Trickserei von useEffect

Erfahren Sie mehr über ein kniffliges Verhalten des useEffect-Hooks bei der Verwendung eines strikten Modus in React 18

Foto von Tim Gouw auf Unsplash

React 18 ist bereits seit ein paar Wochen draußen. Obwohl es eine Handvoll Verbesserungen bringt, führt es zu einem ziemlich seltsamen Verhalten bei einem der am häufigsten verwendeten Hooks. Willst du wissen, was das ist? Auf geht's…

useEffect(), das nur auf dem anfänglichen Mount laufen sollte, läuft zweimal!

Ja, Sie haben richtig gehört! Wenn Sie React 18 in einem strengen Modus verwenden, ist der folgende Codeabschnitt:

Würde eine solche Ausgabe erzeugen:

Hello there!
Hello there!

Wie in der Dokumentation angegeben , führt React 18 eine neue Prüfung nur für Entwickler in den Strict Mode ein. Diese neue Überprüfung deaktiviert automatisch jede Komponente und hängt sie erneut ein, wenn eine Komponente zum ersten Mal bereitgestellt wird, und stellt den vorherigen Zustand bei der zweiten Bereitstellung wieder her.

Eine solche Entscheidung wurde vom React-Team getroffen, da sie in Zukunft eine Funktion hinzufügen möchten, die es React ermöglicht, Abschnitte der Benutzeroberfläche hinzuzufügen und zu entfernen, während der Zustand erhalten bleibt. Da es erfordert, dass Komponenten widerstandsfähig gegen mehrfach montierte und zerstörte Effekte sind, wurde eine zusätzliche Überprüfung eingeführt.

Also wird jede Komponente montiert, dann demontiert und schließlich wieder neu montiert?

Ja, so funktioniert es jetzt. Wenn wir den useEffect()Haken so verwenden:

Nach dem Aktualisieren der Seite wäre die Ausgabe

Mounting...
Unmounting...
Mounting...

Zusammenfassung

React 18 führt eine neue Prüfung nur für Entwickler im Strict Mode ein. Bei dieser Prüfung wird die Komponente automatisch unmountet und neu gemountet, wodurch der useEffect-Hook beim anfänglichen Mounten zweimal ausgelöst wird.

Suggested posts

Pronomen sind super gruselig

Es fällt mir plötzlich auf, wie so oft. Es ist wieder die Mitte. <Nein, nicht die im Pazifik, du Schlappschwanz, die auf dem Jahrmarkt> Jede Schlagzeile laut…..

Ist Kunst jemals unpolitisch?

Ist Kunst jemals unpolitisch?

Gestern haben wir die Tür zum diesjährigen Eurovision Song Contest mit einem glitzernden, chaotischen großen Finale geschlossen, bei dem die schwedische Sängerin Loreen die Trophäe mit nach Hause nahm. Sie war damit die erste Frau, die zweimal gewann, und holte die Krone 50 Jahre nach dem Gewinn des Wettbewerbs durch ABBA zurück nach Schweden mit „Waterloo“. Sie entwickelten sich zu einem der größten Acts im Kanon der Popmusik.

Related posts

Netzwerk-TV Twitter

Netzwerk-TV Twitter

Was alt ist, ist jetzt wieder neu und was früher das glitzernde, glänzende Ding war, fühlt sich jetzt langweilig an. Ich spreche nicht davon, dass JNCO-Jeans zusammen mit anderen Modetrends der späten 1990er Jahre unter den coolen Kids in der Innenstadt ein Comeback erleben.

Zeitschrift Ouvert

Zeitschrift Ouvert

Offenes Tagebuch: Ein Bild pro Tag. Geschichten haben mich schon immer fasziniert.

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Sie können ein OSINT-Ermittler, ein CTF-Spieler oder einfach jemand sein, der Spam-Anrufe erhält. Jemand, der versucht, die Nummer zu bestätigen, die Sie in einer Anzeige gesehen haben.

Schaffung einer sicheren Arbeitsumgebung

Schaffung einer sicheren Arbeitsumgebung

„Er wird mich beschützen, wenn ich in Gefahr bin. Er wird mich in seinem Zelt verstecken.