Vorwort: Manchmal gehört ein Teil der Vorlage einer Komponente logisch zu dieser Komponente, aber aus technischer Sicht wäre es besser, diesen Teil der Vorlage an eine andere Stelle im Szenariobeispiel: Eine Der Speicherort der Geschäftslogik dieses modalen Dialogfelds gehört definitiv zu dieser Dies führt zu einem Problem: Der logische Speicherort der Komponente ist nicht derselbe wie Gemäß der bisherigen 1. Teleport-NutzungDie Verwendung ist sehr einfach. Sie müssen nur das to-Attribut verwenden, um die Komponente an die gewünschte Position zu rendern. // Zum Body-Tag rendern <teleport to="body"> <div Klasse="modal"> Ich bin ein teleportierter Modal! </div> </teleportieren> Sie können auch Folgendes verwenden: <teleportiere zu="#some-id" /> <teleportieren zu=".some-class" /> <teleportieren nach="[data-teleport]" /> Muss ein gültiger Abfrageselektor oder weiter 2. Vervollständigen Sie die modale DialogkomponenteLassen Sie uns nun ein standardmäßiges modales Dialogfeld kapseln <Vorlage> <teleportieren zu="body"> <Übergangsname="Dialog-Überblendung"> <div Klasse="dialog-wrapper" v-show="sichtbar"> <div Klasse="Dialog"> <div Klasse="Dialog-Header"> <slot name="Titel"> <span class="dialog-title"> {{ Titel }} </span> </slot> </div> <div Klasse="Dialog-Body"> <Steckplatz></Steckplatz> </div> <div Klasse="dialog-footer"> <slot name="Fußzeile"> <button @click="onClose">Schließen</button> </slot> </div> </div> </div> </Übergang> </teleportieren> </Vorlage> <Skript> importiere { defineComponent } von „vue“; exportiere StandarddefiniereKomponente({ Name: "tdialog" }); </Skript> <Skript-Setup> const props = defineProps({ Titel: String, sichtbar: Boolean }); const emit = defineEmits(['schließen']); const onClose = () => { emittieren('schließen'); }; </Skript> Bei der Verwendung nur <t-dialog title="LGD ist unbesiegbar" :visible="visible" @close="onClose"> Dies ist ein Inhalt, Xiaose Xianbei. </t-dialog> // ... const sichtbar = ref(false); const onDialog = () => { sichtbarer.Wert = !sichtbarer.Wert; }; const onClose = () => { sichtbarer Wert = falsch; }; Einen Schritt weiter gehen 3. Komponenten-Rendering Wir haben oben die standardmäßige modale Dialogkomponente fertiggestellt. Es gibt eine weitere ähnliche, leichtgewichtige Eingabeaufforderungskomponente namens In den obigen Beispielen schreiben wir die // Rufen Sie eine Eingabeaufforderung auf Message({ message: 'Dies ist eine Nachricht' }); Wenn wir eine Funktion zum Aufrufen verwenden möchten, müssen wir diese Funktion vorbereiten. Die Funktion dieser Funktion besteht darin, das Rendern der Komponente abzuschließen. const Nachricht = Optionen => { // Rendern des Containers vorbereiten const container = document.createElement('div'); // Vnode generieren const vnode = createVNode(MessageConstructor, Optionen); // Renderrender(vnode, container); }; Was ist <Vorlage> <teleportieren zu="#app"> <Übergangsname="Nachricht-Ausblenden"> <div v-show="sichtbar" ref="ins" class="message" :style="customStyle">{{ Nachricht }}</div> </Übergang> </teleportieren> </Vorlage> Online-Erlebnis Code anzeigen Zusammenfassen: Oben geht es um die grundlegende und erweiterte Verwendung Das könnte Sie auch interessieren:
|
<<: HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (6)
>>: CSS-Beispielcode zur Implementierung von Schiebetüren
Inhaltsverzeichnis 1. Beschreibung der Funktionen...
Beziehung zwischen MySQL und MariaDB Das Datenban...
In diesem Artikel wird der spezifische Code von J...
Inhaltsverzeichnis 1. Einführung in FastDFS 1. Ei...
Inhaltsverzeichnis Vorwort 👀 Beginnen Sie mit der...
Inhaltsverzeichnis Partitionierungsmechanismus SE...
Vorwort: Beim Entwerfen einer Tabelle in MySQL em...
In diesem Artikel analysieren wir als Beispiel die...
Dieser Artikel beschreibt die Installation und Ko...
Auf Unix-ähnlichen Systemen wissen Sie möglicherw...
1. Vorbereitung 1.1 Laden Sie das komprimierte To...
Zum Sortieren ist „order by“ ein Schlüsselwort, d...
1. Grundkenntnisse: HTTP-Header-Benutzeragent Use...
RGB-Farbtabelle Farbe Englischer Name RGB 16 Farb...
Wie kann ich überprüfen, ob die Zeitzone des Dock...