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

Detaillierte Erklärung zum Kopieren und Sichern von Docker-Containerdaten

Hier nehmen wir den Jenkins-Container als Beispie...

So legen Sie ein Kennwort für MySQL Version 5.6 auf dem Mac fest

MySQL kann bei der Installation festgelegt werden...

Tiefgreifendes Verständnis von globalen Sperren und Tabellensperren in MySQL

Vorwort Je nach Umfang der Sperrung können Sperre...

MySQL-Triggersyntax und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

Natives JavaScript-Message Board

In diesem Artikel wird der spezifische JavaScript...

Lösung für leere Seite nach Vue-Verpackung

1. Lösung für das Problem, dass die Seite leer is...

Docker benennt den Imagenamen und die TAG-Operation um

Bei der Verwendung von Docker-Images können Image...

MySQL 8.0.19 Win10 - Schnellinstallations-Tutorial

Dieses Tutorial enthält das Installationstutorial...

So stellen Sie War-Pakete manuell über Tomcat9 unter Windows und Linux bereit

Die Ergebnisse sind in Windows- und Linux-Umgebun...

Beispiel für Auslassungspunkte bei Überlauf von mehrzeiligem CSS-Text

Auslassungspunkte werden angezeigt, wenn mehrzeil...

MYSQL Performance Analyzer EXPLAIN Anwendungsbeispielanalyse

Dieser Artikel veranschaulicht anhand eines Beisp...