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

JavaScript implementiert einfache Rechnerfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

Grundlegende Verwendung und Beispiele von yum (empfohlen)

yum-Befehl Yum (vollständiger Name Yellow Dog Upd...

Eine detaillierte Erklärung, wie React Fiber funktioniert

Inhaltsverzeichnis Was ist React Fiber? Warum Rea...

So legen Sie einen Alias ​​für einen benutzerdefinierten Pfad in Vue fest

So konfigurieren Sie benutzerdefinierte Pfadalias...

So gehen Sie mit Zeitzonenproblemen in Docker um

Hintergrund Als ich in diesen beiden Tagen Docker...

Django2.* + Mysql5.7-Entwicklungsumgebung Integrations-Tutorial-Diagramm

Umfeld: MAC_OS 10.12 Python 3.6 MySQL 5.7.25 Djan...

Sind die Wertebereiche von int(3) und int(10) in MySQL gleich?

Inhaltsverzeichnis Frage: Antwort: Wirklichkeit: ...

Lebenszyklus und Hook-Funktionen in Vue

Inhaltsverzeichnis 1. Was ist der Lebenszyklus 2....

So erstellen Sie einen SSH-Dienst basierend auf einem Golang-Image in Docker

Nachfolgend finden Sie den Code zum Erstellen ein...