Detaillierte Erklärung der Vue-Mixin-Verwendung und des Zusammenführens von Optionen

Detaillierte Erklärung der Vue-Mixin-Verwendung und des Zusammenführens von Optionen

1. Verwendung in Komponenten

Mixins bieten eine sehr flexible Möglichkeit, wiederverwendbare Funktionen auf Vue-Komponenten zu verteilen. Ein Mixin-Objekt kann beliebige Komponentenoptionen enthalten. Wenn eine Komponente ein Mixin verwendet, werden alle Optionen des Mixins in die eigenen Optionen der Komponente „gemischt“.

<Vorlage>
  <div Klasse="Ereignisstil">
    <h2>Grundlagen</h2>
    <div Klasse="innere_Kinder">
      <span>{{ Nachricht }}</span>
    </div>
  </div>
</Vorlage>
<Skript>
var meinMixin = {
  Daten() {
    zurückkehren {
      Nachricht: "",
    };
  },
  erstellt: Funktion () {
    console.log("erstellt: Mixin hinzufügen");
    this.message = "erstellt: Mixin hinzufügen";
    dies.hallo();
  },
  Methoden: {
    hallo: Funktion () {
      console.log("Hallo vom Mixin!");
    },
  },
};
// Definieren Sie eine Komponente, die ein Mixin-Objekt verwendet. Exportieren Sie standardmäßig {
  Name: "mixin-basic",
  Mixins: [myMixin],
};
</Skript>

2. Optionszusammenführung

Wenn eine Komponente und ein Mixin Optionen mit demselben Namen haben, werden diese Optionen auf entsprechende Weise „zusammengeführt“.

Beispielsweise werden Datenobjekte intern rekursiv zusammengeführt, wobei bei Konflikten die Komponentendaten Vorrang haben.

<Vorlage>
  <div Klasse="Ereignisstil">
    <h2>Optionen zusammenführen</h2>
    <div Klasse="innere_Kinder">
      <span>{{ Nachricht }}</span>
      <span>{{ Nachricht1 }}</span>
    </div>
  </div>
</Vorlage>
<Skript>
var meinMixin = {
  Daten() {
    zurückkehren {
      Nachricht: "mixin:mixin",
      Nachricht1: "mixin:mixin-1",
    };
  },
  erstellt: Funktion () {
    dies.hallo();
  },
  Methoden: {
    hallo: Funktion () {
      console.log("mixin:Hallo von mixin!");
    },
  },
};
// Definieren Sie eine Komponente, die ein Mixin-Objekt verwendet. Exportieren Sie standardmäßig {
  Name: "Mixin-Merge",
  Mixins: [myMixin],
  Daten() {
    zurückkehren {
      Nachricht: "Komponente: Hallo",
    };
  },
  erstellt: Funktion () {
    dies.hallo();
  },
  Methoden: {
    hallo: Funktion () {
      console.log("Komponente: Hallo Welt!");
    },
  },
};
</Skript>
<Stilbereich>
.Ereignisstil {
  Polsterung links: 50px;
  Polsterung rechts: 50px;
}
.innere_kinder {
  Anzeige: Flex;
  Flex-Richtung: Spalte;
  Höhe: 150px;
  Rand: 1px durchgezogen #333;
  Polsterung: 6px;
}
.inner_children Spanne {
  Schriftgröße: 20px;
}
</Stil>

Seitenrendering-Effekt

Wie aus der obigen Abbildung ersichtlich ist, hat die Komponente Vorrang, wenn die eingemischten Daten und Methoden mit der Komponentendefinition in Konflikt stehen. Wenn sie in der Komponente nicht definiert sind, werden sie zusammengeführt, um die Auswirkung der eingemischten Definition anzuzeigen.

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können!

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion darüber, wie die Vue3 Composition API Vue Mixins ersetzt
  • Detaillierte Erklärung des Vue-Mixins
  • So verwenden Sie Mixins in Vue
  • Webprojektentwicklung VUE-Mischungs- und Vererbungsprinzip
  • Detaillierte Erklärung der Mixin-Verwendung in Vue
  • So verwenden Sie Vue3-Mixin

<<:  MySQL-Abfragedaten stündlich, geben Sie 0 ein, wenn keine Daten vorhanden sind

>>:  Docker stellt Containern dynamisch Ports zur Verfügung

Artikel empfehlen

So starten Sie eine Transaktion in MySQL

Vorwort In diesem Artikel wird hauptsächlich besc...

JavaScript implementiert die Kontrollkästchenauswahlfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

So implementieren Sie abgerundete Ecken mit CSS3 unter Verwendung von JS

Ich bin auf ein Beispiel gestoßen, als ich nach e...

So verwenden Sie das Vue-Router-Routing

Inhaltsverzeichnis 1. Beschreibung 2. Installatio...

React-Beispiel, das den Fortschritt des Datei-Uploads zeigt

Inhaltsverzeichnis React-Demo zur Anzeige des Dat...

Wie stellt MySQL eine Verbindung zum entsprechenden Clientprozess her?

Frage Wie können wir bei einer bestimmten MySQL-V...

Details zur Vue-Vorlagenkompilierung

Inhaltsverzeichnis 1. analysieren 1.1 Regeln für ...

Schritte zum Ändern des MySQL-Zeichensatzes auf UTF8 unter Linux

Inhaltsverzeichnis 1. Überprüfen Sie den MySQL-St...

Beispiele für Vorschaufunktionen für verschiedene Dateitypen in vue3

Inhaltsverzeichnis Vorwort 1. Vorschau der Office...

Fallstudie zur dynamischen Datenbindung von this.$set in Vue

Ich finde, dass die Erklärung von this.$set im In...