Im Vergleich zum alten Lebenszyklus
Nach React16 werden drei Lebenszyklen verworfen (aber nicht gelöscht)
Neue Hooks zum Lebenszyklus der neuen Version hinzugefügt
getSnapshotBeforeUpdate
getDerivedStateFromPropsgetDerivedStateFromProps ist nicht für Instanzen, es muss als statische Methode definiert werden. Und muss einen Rückgabewert angeben Der Rückgabewert kann Statusobjekt oder null sein. //Einen abgeleiteten Status von den Props abrufen static getDerivedStateFromProps(props,state){ Rücklaufstützen } Wenn der Wert des Status immer von Eigenschaften abhängt, können Sie getDerivedStateFromProps verwenden. <div id="test"></div> <!-- React-Core-Bibliothek importieren --> <script src="../js/17.0.1/react.development.js"></script> <!-- Einführung von react-dom zur Unterstützung von react beim Betrieb von dom --> <script src="../js/17.0.1/react-dom.development.js"></script> <!-- Führen Sie Babel ein, um jsx in js zu konvertieren --> <script src="../js/17.0.1/babel.min.js"></script> <Skripttyp = "Text/Babel"> //Komponentenklasse erstellen Count erweitert React.Component{ // Konstruktor Konstruktor(Requisiten){ console.log('Anzahl ---Konstruktor') super(Requisiten) // Status initialisieren this.state = {count:0} } //Komponente einhakenDidMount(){ console.log('Anzahl --- componentDidMount') } // Rückruf der Schaltfläche „Komponente deinstallieren“ death=()=>{ ReactDOM.unmountComponentAtNode(document.getElementById('test')) } // Implementiere +1 hinzufügen =()=>{ // Den ursprünglichen Zustand abrufen const {count} = this.state // Status aktualisieren this.setState({count:count+1}) } // Rückruf für die Schaltfläche zum erzwungenen Aktualisieren force=()=>{ dies.forceUpdate() } statisch getDerivedStateFromProps(Requisiten,Zustand){ console.log('getDerivedStateFromProps', Eigenschaften, Status) Rücklaufstützen } // Steuerkomponenten-Updateventil shouldComponentUpdate(){ console.log('Anzahl --- sollteKomponentenaktualisierung') // Wenn der Rückgabewert false ist, ist das Ventil standardmäßig geschlossen. returniere wahr } //Komponentenaktualisierung abgeschlossen hook componentDidUpdate(){ console.log('Anzahl --- KomponenteDidUpdate') } // Die Komponente wird deinstalliert hook componentWillUnmount(){ console.log('Anzahl --- Komponente wird ausgehängt'); } machen(){ console.log('Anzahl --- Rendern') const {Anzahl} = dieser.Zustand zurückkehren( <div> <h2>Aktuelle Summe: {count}</h2> <button onClick={this.add}>Klick mich an +1</button> <button onClick={this.death}>Klicken Sie hier, um die Komponente zu deinstallieren</button> <button onClick={this.force}>Klicken Sie hier, um die Aktualisierung zu erzwingen (ohne Daten zu ändern)</button> </div> ) } } // Rendering-Komponente ReactDOM.render(<Count count={166}/>,document.getElementById('test')) </Skript> Ausführungsergebnisse getSnapshotBeforeUpdate Der Rückgabewert kann null oder ein Snapshot sein. Wenn er null ist, hat er keine Auswirkung. Wenn es sich um einen Snapshot handelt, kann der Rückgabewert an den dritten Parameter von componentDidUpdate übergeben werden. <div id="test"></div> <!-- React-Core-Bibliothek importieren --> <script src="../js/17.0.1/react.development.js"></script> <!-- Einführung von react-dom zur Unterstützung von react beim Betrieb von dom --> <script src="../js/17.0.1/react-dom.development.js"></script> <!-- Führen Sie Babel ein, um jsx in js zu konvertieren --> <script src="../js/17.0.1/babel.min.js"></script> <Skripttyp = "Text/Babel"> //Komponentenklasse erstellen Count erweitert React.Component{ // Konstruktor Konstruktor(Requisiten){ console.log('Anzahl ---Konstruktor') super(Requisiten) // Status initialisieren this.state = {count:0} } //Komponente einhakenDidMount(){ console.log('Anzahl --- componentDidMount') } // Rückruf der Schaltfläche „Komponente deinstallieren“ death=()=>{ ReactDOM.unmountComponentAtNode(document.getElementById('test')) } // Implementiere +1 hinzufügen =()=>{ // Den ursprünglichen Zustand abrufen const {count} = this.state // Status aktualisieren this.setState({count:count+1}) } // Rückruf für die Schaltfläche zum erzwungenen Aktualisieren force=()=>{ dies.forceUpdate() } statisch getDerivedStateFromProps(Requisiten,Zustand){ console.log('getDerivedStateFromProps', Eigenschaften, Status) return null } getSnapshotBeforeUpdate(){ console.log('getSnapshotBeforeUpdate'); "eee" zurückgeben } // Steuerkomponenten-Updateventil shouldComponentUpdate(){ console.log('Anzahl --- sollteKomponentenaktualisierung') // Wenn der Rückgabewert false ist, ist das Ventil standardmäßig geschlossen. returniere wahr } //Komponentenaktualisierung abgeschlossen hook componentDidUpdate(preProps,preState,snapshotValue){ console.log('Anzahl---1Komponentenaktualisierung', preProps, preState, SnapshotValue); } // Die Komponente wird deinstalliert hook componentWillUnmount(){ console.log('Anzahl --- Komponente wird ausgehängt'); } machen(){ console.log('Anzahl --- Rendern') const {Anzahl} = dieser.Zustand zurückkehren( <div> <h2>Aktuelle Summe: {count}</h2> <button onClick={this.add}>Klick mich an +1</button> <button onClick={this.death}>Klicken Sie hier, um die Komponente zu deinstallieren</button> <button onClick={this.force}>Klicken Sie hier, um die Aktualisierung zu erzwingen (ohne Daten zu ändern)</button> </div> ) } } // Rendering-Komponente ReactDOM.render(<Count count={166}/>,document.getElementById('test')) </Skript> ZusammenfassenDrei Phasen des Lebenszyklus (Neu)1. Initialisierungsphase: ausgelöst durch ReactDOM.render() - erstes Rendering Konstruktor ()getDerivedStateFromPropsrender ()componentDidMount () 2. Aktualisierungsphase: ausgelöst durch this.setSate() innerhalb der Komponente oder erneutes Rendern der übergeordneten Komponente getDerivedStateFromPropsshouldComponentUpdate()render()getSnapshotBeforUpdatecomponentDidUpdate() 3. Komponenten aushängen: ausgelöst durch ReactDOM.unmountComponentAtNode() componentWillUnmount() Wichtiger Hakenrendern: Rendering initialisieren oder Rendering-Aufruf aktualisieren componentDidMount: Überwachung starten, Ajax-Anfrage senden componentWillUnmount: einige Abschlussarbeiten ausführen, z. B.: Timer bereinigen Der Haken, der aufgegeben wird
Bei der aktuellen Verwendung wird eine Warnung angezeigt. Die nächste Hauptversion erfordert die Verwendung des Präfixes UNSAFE_. Es kann sein, dass in Zukunft vollständig darauf verzichtet wird, und es wird nicht empfohlen. Dies ist das Ende dieses Artikels über die neue Version der React-Lifecycle-Hook-Funktion. Weitere relevante Inhalte zur React-Lifecycle-Hook-Funktion finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Tutorial zur Verarbeitung statischer Ressourcen in Tomcat
>>: Verwenden von Keras zur Beurteilung von SQL-Injection-Angriffen (Beispielerklärung)
Einführung Memcached ist ein verteiltes Caching-S...
Das WeChat-Applet Uniapp realisiert den Löscheffe...
1. Holen Sie sich den tatsächlichen Pfad des aktu...
<br />Wenn die Seite <img src=""...
Hintergrund-Threads •Hauptthread Der Kern-Hinterg...
Beispielsweise gibt es ein Eingabefeld <el-Ein...
Methode 1: Verwenden Sie den Befehl SET PASSWORD ...
Inhaltsverzeichnis 1. Übersicht 1. Aussagetest er...
Vorwort Zuerst wollte ich es mit wget auf CentOS8...
Im Leben ist das Internet allgegenwärtig. Wir kön...
Inhaltsverzeichnis Vorwort 1. Erstellen Sie ein n...
Inhaltsverzeichnis 1. Registrieren Sie ein Konto ...
In diesem Artikelbeispiel wird der spezifische Co...
Problembeschreibung: Ich habe einen Desktop-Compu...
Code kopieren Der Code lautet wie folgt: wmode-Pa...