Schritte zum Kapseln von Element-UI-Popupkomponenten

Schritte zum Kapseln von Element-UI-Popupkomponenten

Kapseln Sie el-dialog als Komponente ein

Wenn wir Element-UI verwenden und ein Popup-Fenster viel Inhalt enthält, kapseln wir das Popup-Fenster häufig wie folgt in eine Komponente:

<!-- DetailDialog.vue html -->
<Vorlage>
 <el-dialog title="Titel" :visible.sync="sichtbar" width="720px" >
  <p>Popup-Inhalt</p>
 </el-dialog>
</Vorlage>
// DetailDialog.vue js
<Skript>
 Requisiten: {
  sichtbar:
   Typ: Boolean,
   Standard: false
  }
 }
</Skript>

el-dialog ändert die Eigenschaften und meldet einen Fehler

Es wird jedoch ein Problem geben. Wenn das Schließereignis im el-dialog ausgelöst wird, z. B. durch Klicken auf den Popup-Schatten, wird ein Ereignis ausgegeben, um die Requisiten [sichtbar] der aktuellen Komponente zu ändern. Da die Komponente das Requisitenattribut nicht direkt ändern kann, wird ein Fehler gemeldet.

Wir haben eine Zwischenvariable innerVisible hinzugefügt, um die Änderung und den Erwerb von Requisiten abzufangen [sichtbar]

<!-- DetailDialog.vue html -->
<Vorlage>
 <el-dialog title="Titel" :visible.sync="innerVisible" width="720px" >
  <p>Popup-Inhalt</p>
 </el-dialog>
</Vorlage>
// DetailDialog.vue js
<Skript>
Standard exportieren {
 Requisiten: {
  sichtbar:
   Typ: Boolean,
   Standard: false
  }
 },
 berechnet: {
  innerVisible: {
   bekomme: Funktion() {
    gib dies zurück.sichtbar
   },
   setze: Funktion(Wert) {
    dies.$emit('update:sichtbar', val)
   }
  }
 }
}
</Skript>

Auf diese Weise benachrichtigen wir beim Ändern von prop[visible] innerhalb von el-dialog die übergeordnete Komponente über emit('update:'), um eine direkte Änderung von Props zu vermeiden. Natürlich muss die übergeordnete Komponente den Synchronisierungsmodifikator hinzufügen, um die Änderung zu akzeptieren:

<!-- Vater.vue html -->
<DetailDialog :visible.sync="detailSichtbar" />

Bisher gibt es mit der gekapselten Popup-Komponente keine Probleme.

Optimieren Sie weiter und verwenden Sie das V-Modell, um die Anzeige und das Ausblenden zu steuern

// DetailDialog.vue js
<Skript>
Standard exportieren {
 Modell: {
  prop: 'visible', // Ändere den Namen der an das V-Model gebundenen Requisiten. event: 'toggle' // Ändere den Namen des benutzerdefinierten Ereignisses, das an das V-Model gebunden ist. },
 Requisiten: {
  sichtbar:
   Typ: Boolean,
   Standard: false
  }
 },
 berechnet: {
  innerVisible: {
   bekomme: Funktion() {
    gib dies zurück.sichtbar
   },
   setze: Funktion(Wert) {
    dies.$emit('update:toggle', val)
   }
  }
 }
}
</Skript>

Nach der Verbindung mit dem V-Modell ist die Verwendung eleganter und übersichtlicher.

<!-- Vater.vue html -->
<DetailDialog v-model="detailSichtbar" />

Weiter optimieren und in Mixins kapseln

Wenn Popup-Komponenten häufig gekapselt werden, muss die obige Logik auch ständig kopiert werden. Optimieren Sie daher weiterhin die obige Steuerungsanzeige und die Ausblendlogik und kapseln Sie sie in MXins, die direkt wiederverwendet werden können.

// vModelDialog.js
Standard exportieren {
 Modell: {
  Requisite: "sichtbar",
  Ereignis: ‚Umschalten‘
 },
 Requisiten: {
  sichtbar:
   Typ: Boolean,
   Standard: () => {
    return false
   }
  }
 },
 berechnet: {
  innerVisible: {
   bekomme: Funktion() {
    gib dies zurück.sichtbar
   },
   setze: Funktion(Wert) {
    dies.$emit('umschalten', val)
   }
  }
 }
}

Wenn Sie dann das Popup-Plug-In kapseln, müssen Sie nur Mixins einführen, um die Anzeige- und Ausblendlogik zu vervollständigen.

// DetailDialog.vue js
<Skript>
Importieren Sie vModelDialog aus „./vModelDialog.js“.
Standard exportieren {
 Mixins: [vModelDialog],
}
</Skript>

Oben finden Sie den detaillierten Inhalt der Schritte zum Verpacken von Element-UI-Popup-Komponenten. Weitere Informationen zum Verpacken von Element-UI-Popup-Komponenten finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Vue implementiert eine Tabellen-Popup-Komponente basierend auf Element-ui
  • Lösung für das Problem des wiederholten Auftauchens des Nachrichten-Popup-Fensters von Element
  • Der gesamte Prozess der Implementierung des Zusammenfassungs-Popup-Fensters mit Vue+Element UI
  • Implementierung eines universellen Popup-Fensters von Vue+ElementUI (Hinzufügen+Bearbeiten)
  • Lösung für den Fehler beim Schließen des Dialog-Popup-Fensters in Element-UI
  • Detaillierte Erläuterung des Problems zwischen Popup-Fenstern mithilfe von Element-UI und E-Charts in Vue
  • Element ändert die Implementierung der Ebene der Popup-Fensterkomponenten

<<:  Grafisches Tutorial zur Installations- und Konfigurationsmethode von Mysql5.7.14 (Lösung für Passwortprobleme)

>>:  Zwei Tools zum Teilen des Bildschirms im Linux-Befehlszeilenterminal

Artikel empfehlen

React implementiert Paging-Effekt

In diesem Artikel wird der spezifische Code für R...

JavaScript zum Erzielen eines benutzerdefinierten Bildlaufleisteneffekts

In tatsächlichen Projekten befinden sich die Bild...

Einführung in MyCat, die Datenbank-Middleware

1. Mycat-Anwendungsszenarien Mycat wurde für eine...

Der Unterschied und die Wahl zwischen Datum und Uhrzeit und Zeitstempel in MySQL

Inhaltsverzeichnis 1 Unterschied 1.1 Raumbelegung...

MySQL-Einfügungsproblem bei JSON

MySQL 5.7.8 und höher unterstützt nun einen nativ...

Detaillierte Schritte zum Erweitern der LVM-Festplatte unter Linux

1. Fügen Sie eine Festplatte hinzu 2. Überprüfen ...

Spezifische Verwendung globaler Variablen von node.js

Globales Objekt Alle Module können aufgerufen wer...

So verwenden Sie Docker Compose zum Erstellen eines FastDFS-Dateiservers

Im vorherigen Artikel wurde ein ausführliches Bei...

Detaillierte Erklärung zur Verwendung von JavaScript-Funktionen

Inhaltsverzeichnis 1. Deklarieren Sie eine Funkti...

Lösung für das Fehlen einer chinesischen Eingabemethode in Ubuntu

Es gibt keine Lösung für die chinesische Eingabem...

Lernen wir JavaScript objektorientiert kennen

Inhaltsverzeichnis JavaScript-Prototypenkette Obj...

Beispiel für das Erreichen eines Deckeneffekts mit dem WeChat-Applet

Inhaltsverzeichnis 1. Umsetzung 2. Probleme 3. Üb...

CSS-Implementierungscode für die Textausrichtung

Beim Erstellen von Formularen kommt es häufig vor...