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

Zusammenfassung der für MySQL erforderlichen allgemeinen Kenntnisse

Inhaltsverzeichnis Primärschlüsseleinschränkung E...

Zwei Möglichkeiten zum Deklarieren privater Variablen in JavaScript

Vorwort JavaScript unterscheidet sich von anderen...

Detailliertes Tutorial zum Bereitstellen von Apollo mit Docker

1. Einleitung Ich werde hier nicht näher auf Apol...

Detaillierte Schritte zur Dateisteuerungsverwaltung für Linux-Konten

Im Linux-System gibt es neben den verschiedenen, ...

Verwenden von HTML+CSS zum Verfolgen von Mausbewegungen

Da Benutzer immer datenschutzbewusster werden und...

Docker View JVM-Speichernutzung

1. Rufen Sie den Hostcomputer des Docker-Containe...

Div adaptive Höhe füllt automatisch die verbleibende Höhe

Szenario 1: HTML: <div Klasse="äußere&quo...

Über 3 gängige Pakete der REM-Anpassung

Vorwort Ich habe bereits einen Artikel über REM-A...

Verwendung von „align-content“ im Zeilenumbruchbereich des Flex-Layouts

1. Das in diesem Artikel implementierte Effektdia...

js+Html zur Realisierung einer Tabellenbearbeitungsoperation

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

Demo für 10-Farbverlaufshintergrund des CSS-Containers (linear-gradient())

Grammatik Hintergrund: linearer Farbverlauf (Rich...

Einführung in den Löschvorgang von B-Tree

Im vorherigen Artikel https://www.jb51.net/articl...