Detaillierte Erläuterung der benutzerdefinierten Anweisungen für die Vue.js-Direktive

Detaillierte Erläuterung der benutzerdefinierten Anweisungen für die Vue.js-Direktive

Anpassen eines Demo-Befehls

Die Syntax der benutzerdefinierten Vue-Direktiven lautet wie folgt:

Vue.direktive(id, definition)

Die beiden übergebenen Parameter „id“ bezieht sich auf die Anweisungs-ID und „definition“ bezieht sich auf das Definitionsobjekt. Darunter kann das Definitionsobjekt einige Hook-Funktionen bereitstellen.

<div id="app">
	<!-- Eingabefeld erhält Fokus-->
	<Eingabetyp="Text" v-Fokus/>
</div>

<Skript>
	// Registriere eine globale benutzerdefinierte Direktive v-focus
	Vue.direktive("Fokus", {
		// Wenn das gebundene Element in das DOM eingefügt wird.
		eingefügt(el, Bindung) {
			// Fokuselement el.focus();
		}
	})
</Skript>
<div id="app">
    <p v-demo:red="msg">{{msg}}</p>
</div>

<Skript>
	// Globale Direktive Vue.directive('demo', function (el, binding) {
        console.log(el) //p tag console.log(binding) //Die Ausgabe ist ein Objekt obj
        console.log('Befehlsname:'+binding.name) //Befehlsnameconsole.log('Befehlsbindungswert:'+binding.value) //Befehlsbindungswertconsole.log('Zeichenfolgenform des Bindungswerts:'+binding.expression) //Zeichenfolgenform des Bindungswertsconsole.log('An den Befehl übergebener Parameter:'+binding.arg) //An den Befehl übergebener Parameter})
    var vm = neuer Vue({
        el: "#app",
        Daten: {
            Nachricht: 'Hallo!'
        },
        // Lokale Anweisungen:{
			Demo:{
				eingefügt: Funktion (el) {
					console.log(el)
				}      
			}
		}
    })
</Skript>

Geben Sie hier die Bildbeschreibung ein

Objektliterale

<div id="app">
    <p v-demo="Farben">{{Farben.text}}</p>
</div>

<Skript>
    Vue.Direktive('demo', Funktion (el, Bindung) {
        console.log(el) // p-Tag console.log(Bindung) // Die Ausgabe ist ein Objekt obj
        console.log(Bindung.Wert) // {Farbe: 'blau',Text: 'Hallo!'}
        console.log(Bindung.Wert.Farbe) // 'blau'
        console.log(binding.value.text) // 'Hallo!'
        el.style = 'Farbe:' + Bindung.Wert.Farbe  
    })
    var vm = neuer Vue({
        el: "#app",
        Daten: {
            Farben:
                Farbe: 'blau',
                Text: „Hallo!“
            }
        }
    })
</Skript>

Lebenszyklus-Hooks

Die Direktivendefinitionsfunktion bietet mehrere Hook-Funktionen (optional):

  1. bind : Wird nur einmal aufgerufen, wenn die Direktive zum ersten Mal an ein Element gebunden wird. Mit dieser Hook-Funktion kann eine Initialisierungsaktion definiert werden, die einmal während der Bindung ausgeführt wird.
  2. inserted : wird aufgerufen, wenn das gebundene Element in den übergeordneten Knoten ( div#app ) eingefügt wird (kann aufgerufen werden, wenn der übergeordnete Knoten vorhanden ist, muss aber nicht unbedingt im Dokument vorhanden sein).
  3. update : Wird ausgelöst, wenn sich der Status des an die Anweisung gebundenen Elements (VNode-virtueller Knoten) ändert (einschließlich Stil, Inhalt, Vue-Daten usw.)
  4. componentUpdated : Wird aufgerufen, nachdem der VNode der Komponente, in der sich die Anweisung befindet, und alle seine untergeordneten VNodes aktualisiert wurden.
  5. unbind : Wird nur einmal aufgerufen, wenn die Direktive vom Element gelöst wird (das Element wird aus dem DOM entfernt).
<div id="app">
    <p v-demo="Farbe">{{Anzahl}}</p>
    <button @click="add">Hinzufügen</button>
    <button onclick='unbind()'>Bindung aufheben</button>
</div>

<Skript>
    Funktion unbind() {
        vm.$destroy(); //Starte eine andere Methode zum Aufheben der Bindung}
    Vue.directive('demo', { //Fünf Hook-Funktionen zum Registrieren von Direktiven bind: function () { //1. Gebunden werden //Für die Bindung vorbereiten. Zum Beispiel Ereignis-Listener oder andere komplexe Operationen hinzufügen, die nur einmal ausgeführt werden müssen console.log('1 - bind');
        },
        eingefügt: Funktion () { //2. An den Knoten binden console.log('2 - eingefügt');
        },
        update: function () { //3. Komponentenaktualisierung//Führen Sie entsprechende Aktualisierungen basierend auf den neu erhaltenen Werten durch. Für den Initialwert wird zusätzlich einmal console.log('3 - update'); aufgerufen.
        },
        componentUpdated: function () { //4. Komponentenaktualisierung abgeschlossen console.log('4 - componentUpdated');
        },
        unbind: function () { //5. Unbind//Bereinigungsvorgänge durchführen. Wenn Sie beispielsweise den durch Bind gebundenen Ereignis-Listener entfernen, console.log('5 - bind');
        }
    })
    var vm = neuer Vue({
        el: "#app",
        Daten: {
            Zahl: 10,
            Farbe: 'rot'
        },
        Methoden: {
            hinzufügen: Funktion () {
                diese.num++;
            }
        }
    })
</Skript>

Initialisieren Sie die Auslösemethoden 1 und 2, klicken Sie auf die Schaltfläche „Hinzufügen“, um die Methoden 3 und 4 auszulösen, und klicken Sie auf die Schaltfläche „Aufheben“, um Methode 5 auszulösen, wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der benutzerdefinierten Anweisungen für Vue.js-Direktiven. Weitere relevante benutzerdefinierte Anweisungen für Vue.js-Direktiven finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der benutzerdefinierten Anweisungen zur Vue.js-Quellcodeanalyse
  • Detaillierte Erklärung zum Lernen und Verwenden benutzerdefinierter Anweisungen für Vue.js
  • Eine kurze Erläuterung zur Implementierung benutzerdefinierter Dropdown-Menüanweisungen in Vue.js
  • Detaillierte Erläuterung der Wiederverwendbarkeits-Mixin-Methode und der benutzerdefinierten Anweisungen für Vue.js-Komponenten
  • Detaillierte Implementierung der internen benutzerdefinierten Anweisungen und der globalen benutzerdefinierten Anweisungen von vue.js (unter Verwendung der Direktive)
  • Grundlegende Nutzungsdetails der benutzerdefinierten Anweisungen für Vue.js

<<:  Schritte für Docker zum Erstellen eines privaten Lagerhafens

>>:  Detaillierte Analyse der MySQL MDL-Metadatensperre

Artikel empfehlen

SQL-Implementierung von LeetCode (177. N-höchstes Gehalt)

[LeetCode] 177.N-höchstes Gehalt Schreiben Sie ei...

Vue Uniapp realisiert den Segmentierungseffekt

In diesem Artikel wird der spezifische Code von V...

JavaScript verwendet Canvas zum Zeichnen von Koordinaten und Linien

In diesem Artikel wird der spezifische Code zur V...

Kann Asynchronität in JavaScript „Await“ speichern?

Ich wusste vorher, dass man await verwenden muss,...

js realisiert 3D-Soundeffekte durch audioContext

In diesem Artikel wird der spezifische Code von j...

Verwenden Sie js in html, um die lokale Systemzeit abzurufen

Code kopieren Der Code lautet wie folgt: <div ...

N Möglichkeiten, mit CSS ein zweispaltiges Layout zu erreichen

1. Was ist ein zweispaltiges Layout? Es gibt zwei...

Drei Möglichkeiten zum Zeichnen einer Herzform mit CSS

Im Folgenden stellen wir drei Möglichkeiten zum Z...

Detaillierte Schritte zur Installation der MySQL 5.6 X64-Version unter Linux

Umfeld: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-gli...

Velocity.js implementiert den Seiten-Scrolling-Umschalteffekt

Heute werde ich ein kleines Javascript-Animations...

So schreiben Sie eine Node.JS-Version eines Spiels

Inhaltsverzeichnis Überblick Build-Prozess Verwan...