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
Server-Abgleichlogik Wenn Nginx entscheidet, in w...
Inhaltsverzeichnis 1. Wo ist die Langsamkeit? 2. ...
1. Die Bedeutung von Webstandards verstehen - War...
Verwenden Sie den folgenden Terminalbefehl, um de...
Inhaltsverzeichnis Vorherige 1. Was ist Setup-Syn...
1. CSS alphabetisch ordnen Nicht in alphabetischer...
Inhaltsverzeichnis Vorwort: Implementierungsschri...
<br />Wenn Sie auf den Link klicken, wird di...
Ich bin heute auf mehrere Browserkompatibilitätsp...
1 CSS-Stil ohne Semikolon ";" 2 Tags sin...
1. Stellen Sie zunächst einige häufig verwendete ...
Inhaltsverzeichnis Überblick 1. Entwickeln Sie di...
Die in MySQL integrierte Datumsfunktion TIMESTAMP...
Was ist ein Ansichtsfenster? Mobile Browser platzi...
Vorwort Einige Leute haben mich in diesen Tagen u...