Detaillierte Erklärung zur Verwendung von Scoped Slots in Vue.js-Slots

Detaillierte Erklärung zur Verwendung von Scoped Slots in Vue.js-Slots

Keine Slots

<div id="app">
    <Kind>
        <span>1111</span>    
    </child>
</div>


<Skript>
    // Untergeordnete Komponente registrieren Vue.component("child", {
        Vorlage: "<div>Dies ist ein Div-Tag</div>"
    });

    // Initialisiere die übergeordnete Komponente new Vue({
        el: "#app"
    });
</Skript>

span標簽in der Vorlage wird durch „ <div>這是一個div標簽</div> “ ersetzt, wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Vue2.x-Steckplätze

Mit Schlitzen

Einfach ausgedrückt können Sie mit slot標簽<span>1111</span> dort platzieren, wo es in der untergeordneten Komponente erscheinen soll. Wie unten dargestellt:

<div id="app">
    <Kind>
        <span>1111</span>    
    </child>
</div>


<Skript>
    // Untergeordnete Komponente registrieren Vue.component("child", {
        Vorlage: „<div>Dies ist <slot></slot>ein Div-Tag</div>“
    });

    // Initialisiere die übergeordnete Komponente new Vue({
        el: "#app"
    });
</Skript>

Geben Sie hier die Bildbeschreibung ein

Auch wenn mehrere Tags vorhanden sind, werden sie zusammen eingefügt, was dem Ersetzen des Tags <slot></slot> durch das Tag entspricht, das von der übergeordneten Komponente in der untergeordneten Komponente platziert wurde. Wie unten dargestellt:

<div id="app">
    <Kind>
        <span>1111</span>   
        <i>2222</i>
        <b>3333</b>
    </child>
</div>


<Skript>
    // Untergeordnete Komponente registrieren Vue.component("child", {
        Vorlage: „<div>Dies ist <slot></slot>ein Div-Tag</div>“
    });

    // Initialisiere die übergeordnete Komponente new Vue({
        el: "#app"
    });
</Skript>

Geben Sie hier die Bildbeschreibung ein

Benannte Slots

  1. Die übergeordnete Komponente fügt dem zu verteilenden Tag slot="xxx" hinzu
  2. Fügen Sie im slot標簽des entsprechenden Verteilungsortes name="xxx" zur Unterkomponente hinzu.
  3. Anschließend werden die entsprechenden Beschriftungen an den entsprechenden Positionen platziert. Wie unten dargestellt:
<div id="app">
    <Kind>
        <span slot="eins">1111</span>
        <i slot="zwei">2222</i>
        <b slot="drei">3333</b>
    </child>
</div>


<Skript>

    // Untergeordnete Komponente registrieren Vue.component("child", {
        Vorlage: `<div>
                        Dies ist <slot name='one'></slot>
                        Eins <slot name='zwei'></slot>
                        div
                        <slot name='drei'></slot>
                        Schlagworte </div>`
    });


    // Initialisiere die übergeordnete Komponente new Vue({
        el: "#app"
    });
</Skript>

Geben Sie hier die Bildbeschreibung ein

Kein Slot-Attribut

Wenn im Unterkomponenten-Tag kein Slot-Attribut vorhanden ist, wird der Standardwert angezeigt

    <div id="app">
        <Kind>
            <!-- <span slot="one">1111</span> -->
            <i slot="zwei">2222</i>
            <!-- <b slot="drei">3333</b> -->
        </child>
    </div>

    <Skript>
        // Untergeordnete Komponente registrieren Vue.component("child", {
            Vorlage: `<div>
                            <slot name='one'>niemand</slot>
                            <slot name='two'>keine zwei</slot>
                            <slot name='three'>keine drei</slot>
                        </div>`

        });

        // Initialisiere die übergeordnete Komponente new Vue({
            el: "#app"
        });
    </Skript>

slot="two" wird an einer festen Position eingefügt, wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Slot einfache Beispielanwendung

Denken Sie an die verschiedenen Steckplätze auf der Hauptplatine Ihres Computers. Einige sind für die CPU, andere für die Grafikkarte, andere für den Speicher und wieder andere für die Festplatte. Nehmen wir also an, es gibt eine Komponente namens Computer und ihre Vorlage ist Vorlage, wie folgt:

<Text>
    <div id="app">
        <Computer>
            <div Steckplatz="CPU">Intel Core i7</div>
            <div slot="GPU">GTX980Ti</div>
            <div slot="Speicher">Kingston 32G</div>
            <div slot="Festplatte">Samsung SSD 1T</div>
        </computer>
    </div>

    <Skript>
        // Unterkomponente registrieren Vue.component("computer", {
            Vorlage: `<div>
                            <slot name="CPU">Schließen Sie hier Ihre CPU an</slot>
                            <slot name="GPU">Schließen Sie hier Ihre Grafikkarte an</slot>
                            <slot name="Memory">Fügen Sie hier Ihre Erinnerung ein</slot>
                            <slot name="Festplatte">Schließen Sie hier Ihre Festplatte an</slot>
                        </div>`
        });

        // Initialisiere die übergeordnete Komponente new Vue({
            el: "#app"
        });
    </Skript>
</body>

Geben Sie hier die Bildbeschreibung ein

Scoped Slots (neu in 2.1.0)

Ein Scoped Slot ist ein spezieller Slot-Typ, der als wiederverwendbare Vorlage (an die Daten übergeben werden können) fungiert, um ein bereits gerendertes Element zu ersetzen.

  1. Übergeben Sie in der untergeordneten Komponente die Daten einfach an den Slot, so wie Sie eine Requisite an eine Komponente übergeben würden.
  2. In der übergeordneten Komponente werden die von der untergeordneten Komponente übergebenen Daten über slot-scope="scoped" abgerufen. Der Alias ​​dieses Datenobjekts ist scoped . Dies ist die Vorlage für einen Slot mit begrenztem Gültigkeitsbereich.
<div id="app">
    <Kind>
    	<!-- 2. Empfangen Sie myName-Daten mit dem Gültigkeitsbereich { "myName": "猫老板的豆" } -->
        <template slot="Inhalt" slot-scope="Bereich"> 
            <div>{{ scoped.meinName }}</div>
        </Vorlage>
    </child>
</div>

<Skript>
	Vue.Komponente('Kind', {
		Daten () {
			zurückkehren {
				meinName: ‚Cat Boss‘s Beans‘
			}
		},
		Vorlage: `<slot name="content" :myName="myName"></slot>` // 1. myName-Daten wegwerfen })
	
	neuer Vue({
		el: "#app"
	});
</Skript>

Vue3.x-Steckplätze

Spielautomaten

<!-- Übergeordnete Komponente -->
<Vorlage>
	<Kind>
		<!-- Vue2.x schreibt <div slot="parent">
            <div>übergeordnete Komponente</div>
		</div>
		 -->
		<Vorlage v-slot:übergeordnet>
            <div>übergeordnete Komponente</div>
        </Vorlage>
	</Kind>
</Vorlage>


<!-- Untergeordnete Komponente -->
<Vorlage>
	<slot name='parent'>untergeordnete Komponente</slot>
</Vorlage>

Slots mit begrenztem Umfang

In Vue2.x werden benannte Slots und Slots mit Gültigkeitsbereich mit slot bzw. slot-scope implementiert. In Vue3.x werden slot und slot-scope kombiniert und gemeinsam verwendet.

Übergeordnete Komponente:

<Vorlage>
	<Kind>
		<!-- <template slot="content" slot-scope="scoped"> -->
		<template v-slot:content="scoped">
			<div>{{scoped.meinName}}</div>
		</Vorlage>
	</Kind>
</Vorlage>

Unterkomponenten:

<Vorlage>
	<slot name="content" :meinName="meinName"></slot>
</Vorlage>

<Skript>

importiere { ref } von 'vue'
Standard exportieren {
	aufstellen () {

		let meinName = ref("Mr. Cat's Bean")

		return { meinName }
	},
}
</Skript>

Dies ist das Ende dieses Artikels über die detaillierte Verwendung von Scoped Slots von Vue.js-Slots. Weitere Inhalte zu Scoped Slots von Vue.js-Slots finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Vue.js dynamische Komponentenanalyse
  • Beispiel für dynamische Bindung der Kommunikation zwischen übergeordneten und untergeordneten Komponenten in Vue.js
  • Implementierung dynamischer Komponentenvorlagen in Vue.js
  • Detaillierte Erklärung der dynamischen Komponenten von vue.js
  • Tutorial zur Verwendung von Vue-Architektur-Slots für die Front-End-Architektur
  • Grundlegende Nutzungsspezifikationen von Slots in Vue2
  • Vue-Standardslot, benannter Slot, Bereichsslot – Definition und Verwendung
  • Zusammenfassung der Verwendung dynamischer Komponenten und Slots von vue.js

<<:  mysql löst zeitzonenbezogene Probleme

>>:  CUDA8.0 und CUDA9.0 koexistieren unter Ubuntu16.04

Artikel empfehlen

Beispiel für die Konfiguration von nginx zur Implementierung von SSL

Umgebungsbeschreibung Serversystem: Ubuntu 18.04 ...

Einführung in das Linux-Netzwerksystem

Inhaltsverzeichnis Netzwerk Informationen Ändern ...

Einfache Anwendungsbeispiele für benutzerdefinierte MySQL-Funktionen

Dieser Artikel veranschaulicht anhand von Beispie...

Lösung für das Problem „VMware-virtuelle Maschine ohne Netzwerk“

Inhaltsverzeichnis 1. Problembeschreibung 2. Prob...

Vue ElementUI Form-Formularvalidierung

Die Formularvalidierung ist eine der am häufigste...

CSS-Isolationsproblem in Blazor

1. Umwelt VS 2019 16.9.0 Vorschau 1.0 .NET SDK 5....

MySql 8.0.11 Installations- und Konfigurationstutorial

Offizielle Website-Adresse: https://dev.mysql.com...

Zusammenfassung von über 50 Hilfsfunktionen in JavaScript

JavaScript kann viele tolle Dinge. Dieser Artikel...

Anwendungsbeispiele für React Hooks

Inhaltsverzeichnis Ein einfaches Komponentenbeisp...