Zustandsaktualisierungen und Komponenten-Rendering verstehen
Obwohl der strikte Modus nicht explizit aktiviert ist, besteht das Problem, dass eine Komponente bei jeder Zustandsaktualisierung zweimal gerendert wird die Verwendung des Strict Mode von React.
In React ist die App-Komponente in React.StrictMode eingeschlossen:
ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, rootElement );
Laut React-Dokumentation:
Strict Der Modus kann Nebenwirkungen nicht automatisch für Sie erkennen, aber er kann Ihnen dabei helfen, sie zu erkennen, indem er sie etwas deterministischer macht. Dies geschieht durch absichtlichen Doppelaufruf der folgenden Funktionen:
- State-Updater-Funktionen (das erste Argument für setState)
- Funktionen, die an useState, useMemo oder useReducer übergeben werden
In Ihrem Beispiel löst die an den onClick-Handler übergebene chaneNumber-Funktion eine Statusaktualisierung mithilfe von useState aus. Daher ruft React diese Funktion im Entwicklungsmodus absichtlich doppelt auf. Dies führt dazu, dass die Komponente bei jeder Statusaktualisierung zweimal gerendert wird.
Dieses Verhalten soll Entwicklern dabei helfen, potenzielle Nebenwirkungen oder Leistungsprobleme zu erkennen, die durch Statusaktualisierungen verursacht werden. Indem die Funktion zweimal ausgeführt wird, stellt React sicher, dass alle Nebenwirkungen zweimal auftreten, was das Debuggen und Beheben potenzieller Probleme erleichtert.
Das obige ist der detaillierte Inhalt vonWarum wird eine Komponente bei jeder Statusaktualisierung im strengen Modus zweimal gerendert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!