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

Analysieren von AB-Leistungstestergebnissen unter Apache

Ich habe immer Loadrunner für Leistungstests verw...

Detaillierte Erklärung der Fallstricke beim Mischen von npm und cnpm

Inhaltsverzeichnis Ursache Grund Einführung in NP...

Detaillierte Erklärung der reinen SQL-Anweisungsmethode basierend auf JPQL

JPQL steht für Java Persistence Query Language. B...

So verwenden Sie den Linux-Befehl nl

1. Befehlseinführung nl (Anzahl der Zeilen) fügt ...

So erstellen Sie eine Testdatenbank mit zig Millionen Testdaten in MySQL

Manchmal müssen Sie basierend auf der offiziell v...

Natives JS zum Erzielen eines Puzzle-Effekts

In diesem Artikel wird der spezifische Code von n...

MySQL-Serie 15: Allgemeine MySQL-Konfiguration und Leistungsstresstest

1. Allgemeine MySQL-Konfiguration Alle folgenden ...

JS implementiert kreisförmiges Ziehen und Schieben des Fortschrittsbalkens

In diesem Artikelbeispiel wird der spezifische JS...

Detaillierte Erklärung von Prototypen und Prototypenketten in JavaScript

Inhaltsverzeichnis Prototyp-Kettendiagramm Grundl...

So verwenden Sie Watch-Listener in Vue2 und Vue3

watch : auf Datenänderungen achten (Änderungserei...

Detaillierte Erklärung zur Verwendung von Filtereigenschaften in CSS3

Als ich kürzlich das Intranet-Portal änderte, sti...

Vue implementiert die browserseitige Code-Scan-Funktion

Hintergrund Vor nicht allzu langer Zeit habe ich ...