ZweckVerstehen Sie die Rolle von nextTick und mehrere einfache Anwendungsszenarien Text Was ist seine Funktion?Der verzögerte Rückruf wird ausgeführt, nachdem der nächste DOM-Aktualisierungszyklus abgeschlossen ist. Verwenden Sie diese Methode unmittelbar nach der Datenänderung, um das aktualisierte DOM zu erhalten. Ich denke, jeder kennt oder versteht den Rendering-Prozess von Vue. Vue rendert nach der Überwachung von Datenänderungen erneut und arbeitet mit VDOM zusammen, um das reale DOM zu aktualisieren. Der Auslösezeitpunkt von nextTick liegt nach dem ersten erneuten Rendering nach dem Aufruf der Methode. Wie benutzt man?Es gibt zwei Möglichkeiten, es zu verwenden: Eine besteht darin, einen Rückruf zu übergeben, und die andere ist Promise. Die offiziellen Verwendungsbeispiele lauten wie folgt: // Daten ändern vm.msg = 'Hallo' // DOM wurde noch nicht aktualisiert Vue.nextTick(function () { // DOM aktualisiert}) // Als Promise verwenden (neu seit 2.1.0, Einzelheiten finden Sie in den folgenden Tipps) Vue.nextTick() .dann(Funktion () { // DOM aktualisiert}) Wenn es sich um eine SPA (Single File Component) handelt, kann es so aussehen <Vorlage> <div id="test">{{msg}}</div> </Vorlage> <Skript> Standard exportieren { Name: "App", Daten() { zurückkehren { "msg": "Hallo Welt!" } }, Methode() { this.msg = "Hallo Welt!"; dies.$nextTick(() => { console.log('DOM aktualisiert:', document.getElementById('test').innerHTML) }); } } </Skript> Was sind die Anwendungsszenarien?Bei manchen Methoden muss vor der Ausführung gewartet werden, bis das Rendering abgeschlossen ist. Bindung initialisieren oder DOM manipulierenWenn Sie beispielsweise in den erstellten und bereitgestellten Rückrufen das gerenderte DOM bedienen müssen, müssen Sie die entsprechende Logik in nextTick ausführen. Dies ist sehr nützlich, wenn Sie einige alte Bibliotheken verwenden müssen, die an das DOM gebunden werden müssen. Wenn Sie beispielsweise UEditor laden, können Sie so spielen <Vorlage> <script id="container" name="content" type="text/plain"> Schreiben Sie hier Ihren Initialisierungsinhalt</script> </Vorlage> <Skript> Standard exportieren { montiert() { dies.nextTick(() => { var ue = UE.getEditor('container'); }); } } Elementbreite ermitteln Es gibt zwei Möglichkeiten, die Elementbreite in Vue zu ermitteln. Die erste ist über <Vorlage> <p ref="myWidth" v-if="showMe">{{ message }}</p> <button @click="getMyWidth">Breite des p-Elements abrufen</button> </Vorlage> <Skript> Standard exportieren { Daten() { zurückkehren { Nachricht: "Hallo Welt!", zeig mir: falsch, }, Methoden: { getMeineBreite() { dies.showMe = wahr; //this.message = this.refs.myWidth.offsetWidth; //TypeError: this.refs.myWidth ist nicht definiert dies.nextTick(()=>{ //Ausführen, nachdem das DOM-Element aktualisiert wurde und die Attribute des p-Elements abgerufen werden können this.message = this.refs.myWidth.offsetWidth; }) } } } } </Skript> ZusammenfassenObwohl die Designphilosophie von Vue nicht empfiehlt, den DOM direkt zu manipulieren, treten in einigen Szenarien einige besonders verwirrende Probleme auf. Nachdem Sie die Rendering-Logik von Vue verstanden haben, können Sie diese mit nextTick() lösen. Oben finden Sie Einzelheiten zur Verwendung von nextTick in Vue. Weitere Informationen zur Verwendung von nextTick in Vue finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Centos7-Startvorgang und Nginx-Startkonfiguration in Systemd
>>: Lösung für den Fehler 1045, wenn Navicat eine Verbindung zu MySQL herstellt
2048 Minispiel, zu Ihrer Information, der spezifi...
1. Einleitung Zuvor haben wir die schnelle Entwic...
Inhaltsverzeichnis 1. Grundlegende Speicherung vo...
Routenparameter, Routennavigationswächter: Beibeh...
Dieser Artikel entstand aus der Hausaufgabe „Erle...
** Detaillierte grafische Anweisungen zur Install...
1. Nach der Installation der Windows-Version von ...
Dieser Artikel fasst die Wissenspunkte zu MySql-I...
In diesem Artikel wird der spezifische Code des V...
Inhaltsverzeichnis 1. Installieren Sie Docker auf...
Freunde, die HTML-, CSS- und JS-Frontend lernen, ...
In diesem Artikel müssen wir lernen, wie man Bild...
In diesem Artikel erfahren Sie, wie Sie das benut...
3 Möglichkeiten zum Implementieren des Tab-Wechse...
In diesem Artikelbeispiel wird der spezifische Co...