Detaillierte Erläuterung der erweiterten Konstruktionseigenschaften von Vue

Detaillierte Erläuterung der erweiterten Konstruktionseigenschaften von Vue

1. Richtlinie Zollrichtlinie

Im Code des Vue-Frameworks werden native DOM-Operationen selten verwendet. Das liegt daran, dass native DOM-Operationen in Vue in Anweisungen gekapselt sind. Beispielsweise hat die Anweisung <div v-text="xxx"></div>, die wir zuvor gesehen haben, tatsächlich die folgende interne Operation:

div.innerText = xxx; //Natürlich ist das div hier das erhaltene DOM-Element

Vue kapselt native DOM-Operationen in Anweisungen. Wenn ein Element die Anweisung verwenden möchte, kann es sie direkt als Attribut im Element-Tag in der HTML-Vorlage verwenden. Das ist einfach und praktisch und reduziert Duplikate.

Vue kann jedoch nicht alle DOM-Operationen berücksichtigen und in entsprechende Anweisungen kapseln. Einige DOM-Operationen sind erst bekannt, wenn Entwickler sie in der Praxis verwenden. Daher bietet Vue Benutzern eine Möglichkeit, Anweisungen anzupassen, die grob in die folgenden zwei Typen unterteilt werden können:

Benutzerdefinierte Anweisungen ähneln benutzerdefinierten Komponenten und werden ebenfalls in global und lokal unterteilt. Im Folgenden wird die benutzerdefinierte Anweisung vy zum Drucken des Zeichens y als Beispiel verwendet:

Globale Richtlinien

Globale Eigenschaften werden in bestimmten von Vue bereitgestellten Funktionen registriert:

Vue.direktive("y", {
  eingefügt: function(el) {
    el.addEventListener("klicken", () => console.log("y"));
  }
});

Lokale Anweisungen

Kann nur in der Vorlage verwendet werden, die die Richtlinie definiert

Es kann im Vorlagenattribut der vollständigen Version sein

Haupt-JS

neuer Vue({
  Vorlage:`
    <div vy>
      <button>Klick</button>
    </div>
  `,
  Anweisungen:{
    'y':{
      eingefügt: function(el) {
        el.addEventListener("klicken", () => console.log("y"));
      }
    }
  }
}).$mount("#app");

Oder im Exportstandard{} der unvollständigen Version der .vue-Datei

app.vue

<Vorlage>
    <div>
      <button vy>Klick</button>
    </div>
</Vorlage>
<Skript>
    Standard exportieren {
      Anweisungen:{
        'y':{
          eingefügt: function(el) {
            el.addEventListener("klicken", () => console.log("y"));
          }
        }
      }
    };
</Skript>

DirektiveOptionen

Es gibt 5 Funktionsattribute im Anweisungsobjekt

{
    bind: function (el,info,vnode,oldVnode) {}, //Wird ausgeführt, wenn das Element im Speicher erstellt wird insert: function (Parameter wie oben) {}, //Wird ausgeführt, wenn das Element in die Seite eingefügt wird update: function (Parameter wie oben) {}, 
    componentUpdated: Funktion (Parameter wie oben) {}, 
    unbind: Funktion (Parameter wie oben) {} //Ausführen, wenn das Element verschwindet}

Im Funktionsattributparameter bezieht sich el auf das Element, das die Anweisung aufruft, und info enthält alle Informationen. Suchen Sie bei Bedarf einfach in info danach.

2. Mischen

Der Hauptzweck von Mixins besteht darin, die Duplizierung von Konstruktionsoptionen zu reduzieren. Sie können die wiederholten Konstruktionsoptionen in eine separate *.js-Datei extrahieren, importieren und dann über das Mixins-Attribut in die Konstruktionsoptionen mischen.

minxin ist ein intelligenter Mixin, der auf der Grundlage der hinzugefügten Mixins und der aktuellen Optionen intelligent gemischt wird, anstatt sie einfach zu kopieren.

3. Erweitert die Vererbung

Vererbung und Mixin haben ähnliche Funktionen, aber Extend ist abstrakter. Beide vereinfachen die Wiederholung von Konstruktionsoptionen. Extend kann seine eigenen definierten Eigenschaften als feste Eigenschaften basierend auf der ursprünglichen Vue-Shell hinzufügen und diese dann verwenden, um eine benutzerdefinierte Klasse MyVue zu erstellen, die Vue erbt, wenn ein Vue-Objekt erstellt wird.

MyVue.js

const MyVue = Vue.extend({
    minxins: [Protokoll]
});

Standard-MyVue exportieren;

4. bereitstellen und injizieren

Das übergeordnete Element stellt gemeinsame Daten oder Methoden bereit

{
    //...
    bieten(){
        zurückkehren {
            xx: dies.ändernxx,
            yy: diese.Änderungyy
        }
    },
    Methoden:{
        ändernxx(){
            //...
        },
        ändernyy(){
            //...
        }
    }
}

Nachkommen injizieren Dinge, um Daten zu ändern

{
    einfügen: ["changexx", "changeyy"]
}

Dies funktioniert ähnlich wie der Modifikator .sync, ist aber allgemeiner.

Oben finden Sie eine ausführliche Erläuterung der erweiterten Struktureigenschaften von Vue. Weitere Informationen zu den erweiterten Struktureigenschaften von Vue finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Zusammenfassung der Verwendung von berechneten Vue-Eigenschaften und -Listenern
  • Ändern Sie dynamisch einen der CSS-Attributwerte in Vue
  • Berechnete Eigenschaften und Listening-Eigenschaften in Vue
  • So verwenden Sie Loop-Objekteigenschaften und Attributwerte in Vue
  • Vue implementiert das Festlegen unterschiedlicher Stile entsprechend den Attributwerten in den Daten
  • vue löst das Problem, dass reaktive Eigenschaften für undefinierte Werte, leere Werte oder primitive Werte nicht festgelegt werden können.
  • Ein kurzes Verständnis des Unterschieds zwischen Vue-berechneten Eigenschaften und der Überwachung
  • Lösen Sie das Problem, dass Vue den in mapState definierten Attributen Fehler zuweist
  • Vue-Konstruktionsoptionen – Erweiterte Nutzungsanweisungen

<<:  So setzen Sie das Passwort zurück, wenn Sie es in MySQL8 vergessen haben (die alte MySQL-Methode funktioniert nicht)

>>:  So erstellen Sie schnell einen FTP-Dateidienst mit FileZilla

Artikel empfehlen

Der Prozess der Bereitstellung eines Projekts auf einem anderen Host mit Jenkins

Umfeld Hostname IP-Adresse Aufschlag Jenkins 192....

CSS3 realisiert Textreliefeffekt, Gravureffekt, Flammentext

Um diesen Effekt zu erzielen, müssen Sie zunächst...

Zusammenfassung der MySQL-Datenmigration

Inhaltsverzeichnis Vorwort: 1. Über die Datenmigr...

Lösung zur inkonsistenten Anzeige der Cursorgröße im Eingabefeld

Die Cursorgröße im Eingabefeld ist inkonsistent De...

So erstellen Sie schnell MySQL Master-Slave mit mysqlreplicate

Einführung Das mysql-utilities-Toolset ist eine S...

Prozessdiagramm für das erste Bereitstellungs-Webprojekt von Tomcat

Legen Sie Ihr eigenes Webprojekt im Verzeichnis w...

9 Tipps zur MySQL-Datenbankoptimierung

Inhaltsverzeichnis 1. Wählen Sie die am besten ge...

Detaillierte Erläuterung der grundlegenden Docker-Netzwerkkonfiguration

Externer Zugriff Ports nach dem Zufallsprinzip zu...

Erfahren Sie, wie Sie eine MySQL-Datenbank auf dem Mac installieren

Laden Sie MySQL für Mac herunter: https://downloa...

Vue elementUI implementiert Baumstrukturtabelle und Lazy Loading

Inhaltsverzeichnis 1. Ergebnisse erzielen 2. Back...

Best Practices-Handbuch zum Speichern von Daten in MySQL

Inhaltsverzeichnis Vorwort Verwenden Sie keine Ze...