Spielautomaten Was sind Slots?Konzept Vue implementiert eine Reihe von APIs zur Inhaltsverteilung und stellt ein <slot>-Element für Komponenten als Schnittstelle zum Übertragen verteilter Inhalte bereit. Einfach ausgedrückt dient das <slot>-Element als Steckplatz für die Inhaltsverteilung in einer Komponentenvorlage. Das <slot>-Element selbst wird ersetzt. Slot-InhalteGrammatik Erstellen Sie zunächst eine neue Datei, um unseren Slot zu schreiben // Steckplatz.vue <Vorlage> <div> <div> <!--Der Inhalt der Verteilung wird an diese Slot-Tag-Position übertragen--> <Steckplatz></Steckplatz> </div> <p>Konto: <input /></p> <p>Passwort: <input type="password" /></p> <button>Anmelden</button> </div> </Vorlage> <Skript> Standard exportieren {}; </Skript> <Stil> </Stil> Dann verwenden wir es in einer anderen Komponente (SlotTest) // SlotTest.vue <Vorlage> <div> <slotCom> <h2>Ich bin der Inhalt, der an den Slot verteilt wird</h2> </slotCom> </div> </Vorlage> <Skript> // Importieren Sie „import slotCom“ von „../views/slot“; Standard exportieren { Komponenten: slotCom }, } </Skript> <Stil> </Stil> Aus dem Effektdiagramm (unten) können wir ersehen, dass der Satz im h2-Tag auf der Seite gerendert wurde und die Tag-Position auch dem Tag in der Datei slot.vue entspricht. Beachten Wenn die <SlotTest>-Vorlage kein <slot>-Element enthält, wird jeglicher Inhalt innerhalb der Symmetrie-Tags der Komponente verworfen. KompilierungsbereichWenn Sie Daten in einem Slot verwenden möchten, beispielsweise: <navigation-link url="/profil"> Angemeldet als {{ user.name }} </navigation-link> Der Slot hat Zugriff auf dieselben Instanzeigenschaften (und daher denselben „Bereich“) wie der Rest der Vorlage, jedoch nicht auf den Bereich des <navigation-link>. Beispielsweise ist die URL nicht zugänglich: <navigation-link url="/profil"> Wenn Sie hier klicken, werden Sie weitergeleitet zu: {{ url }} /* „URL“ ist hier undefiniert, da ihr Inhalt an den <Navigationslink> _übergeben_ wird und nicht *innerhalb* der <Navigationslink>-Komponente definiert ist. */ </navigation-link> Denken Sie grundsätzlich daran: Der gesamte Inhalt der übergeordneten Vorlage wird im übergeordneten Bereich kompiliert; der gesamte Inhalt der untergeordneten Vorlage wird im untergeordneten Bereich kompiliert. Fallback-Inhalte Mit dem <slot>-Element können Sie Fallback-Inhalte festlegen. Wenn in das Symmetrie-Tag der aktuellen Komponente kein Inhalt eingefügt wird, rendert die Komponente schließlich den Fallback-Inhalt. Einfach ausgedrückt entspricht es dem Standardwert des Steckplatzes. // Eine Schaltflächenkomponente. Legen Sie den Fallback-Inhalt auf Text „Senden“ fest. <button type="senden"> <slot>Senden</slot> </button> // Wenn ich <Submit-Button> in einer übergeordneten Komponente verwende und keinen Slot-Inhalt angebe: <Senden-Schaltfläche></Senden-Schaltfläche> // Der Fallback-Inhalt „Senden“ wird gerendert: <button type="senden"> Einreichen </button> // Aber wenn wir Inhalte bereitstellen: <Senden-Schaltfläche> Speichern </Absenden-Schaltfläche> // dann wird der bereitgestellte Inhalt anstelle des Fallback-Inhalts gerendert: <button type="senden"> Speichern </button> Benannte SlotsKonzept Manchmal benötigen unsere Komponenten mehr als einen Steckplatz. Verschiedene Komponenten können in verschiedene Slots eingefügt werden. Dies geschieht durch die Verwendung benannter Slots und das Festlegen eines Namensattributs für das <slot>-Element in der Komponente. Wenn wir einem benannten Slot Inhalt bereitstellen, können wir die v-slot-Direktive für ein <template>-Element verwenden, um den entsprechenden Inhalt in das angegebene <slot>-Element einzufügen. Grammatik // Login-Komponente.vue <Vorlage> <div> <div> <slot>Inhalt sichern</slot> </div> <p> Konto: <slot name="user"></slot> </p> <p> Passwort: <slot name="psd"></slot> </p> <button>Anmelden</button> <Steckplatz></Steckplatz> </div> </Vorlage> // Verwenden von <login-component> <h2>Ich bin der Inhalt, der an den Slot verteilt wird</h2> <Vorlage v-slot:Benutzer> <!-- Der gesamte Inhalt hier wird in den Slot name="user" eingefügt--> <div> 123 </div> </Vorlage> <input slot="psd" type="password" placeholder="Dieses Element wird in den name=psd-Slot eingefügt"> <Komponente-a slot="psd"></Komponente-a> </Anmeldekomponente> Beachten Wie v-on und v-bind hat v-slot eine Abkürzung, die darin besteht, alles vor dem Parameter (v-slot:) durch das Zeichen # zu ersetzen. Beispielsweise kann v-slot:header als #header umgeschrieben werden. <Anmeldekomponente> <h2>Ich bin der Inhalt, der an den Slot verteilt wird</h2> <Vorlage #Benutzer> Der gesamte Inhalt hier wird in den Slot name="user" <div> eingefügt. 123 </div> </Vorlage> <Vorlage #psd> <input type="password" placeholder="Dieses Element wird in den name=psd-Slot eingefügt"> </Vorlage> </Anmeldekomponente> Ich persönlich denke, dass Slots bei der Projektentwicklung nicht häufig verwendet werden und häufig bei der Entwicklung einiger UI-Bibliotheken verwendet werden. Wenn Sie ein tieferes Verständnis von Slots erlangen möchten, können Sie das offizielle Dokument cn.vuejs.org/v2/guide/co… zu Rate ziehen. Filter KonzeptVue.js ermöglicht es Ihnen, Ihre eigenen Filter zu definieren, die für einige gängige Textformatierungen verwendet werden können. Filter können an zwei Stellen verwendet werden: Interpolation mit doppelten geschweiften Klammern und V-Bind-Ausdrücken (letzteres wird seit 2.1.0+ unterstützt). Filter sollten am Ende des JavaScript-Ausdrucks hinzugefügt werden, gekennzeichnet durch das Symbol „|“: GrammatikFilter unterstützt globale Filter oder lokale Filter Globale Filter<div id="app"> {{str | capitalize}} // Hallo </div> // Den ersten Buchstaben des Wortes groß schreiben Vue.filter('capitalize', function (value) { wenn (!Wert) return '' Wert = Wert.toString() Rückgabewert.charAt(0).toUpperCase() + Wert.slice(1) }) neuer Vue({ el: '#app', Daten: { str: 'hallo' } }) Lokaler Filter<div id="app"> <div v-for="(f,i) in Freunde" :key="i"> <h3>Name: {{f.name}} </h2> <p>Alter: {{f.age}}</p> <p>Geschlecht: {{f.sex|getSex}}</p> </div> </div> <Skript> neuer Vue({ el: '#app', Daten: { Freunde: [{ Name: 'Max', Geschlecht: 0, Alter: 19 }, { Name: 'Jack', Geschlecht: 1, Alter: 22 }, { Name: 'Jacose', Geschlecht: 1, Alter: 19 }, { Name: 'Tim', Geschlecht: 1, Alter: 18 }, { Name: 'Jimmy', Geschlecht: 0, Alter: 20 }, { Name: 'Tom', Geschlecht: 0, Alter: 19 }, ] }, Filter: getSex(Typ) { wenn (Typ === 0) { returniere 'männlich' } returniere 'weiblich' } } }) </Skript> Hinweis: Filter unterstützt die Übergabe mehrerer Parameter. Die direkt an substr übergebenen Parameter werden nacheinander als zweiter, dritter usw. Parameter der Filtermethode verwendet. <div>{{'hallo' | substr(3,4)}}</div> <Skript> { Filter: substr(str,Start,Ende) { gibt str.substr(Start, Ende) zurück } } } </Skript> übenImplementieren Sie einen Filter, der die Zeit der entsprechenden Struktur gemäß der angegebenen Vorlage zurückgeben kann. // Beispiel <p>{1599639292100 | getTemplateTimeByDate('YYYY-MM-dd hh:mm:ss')}</p> -> 2020-09-09 15:04:56 <p>{1599639292100 | getTemplateTimeByDate('JJJJ-Md h:m:s')}</p> -> 2020-9-9 15:4:6 <p>{1599639292100 | getTemplateTimeByDate('JJJJ Jahr M Monat d Tag hh:mm')}</p> -> 9. September 2020, 15:04 Uhr neuer Vue({ el: '#app', Daten: { Datum: neues Date().getTime() }, Filter: getTemplateTimeByDate(Datum, Vorlage) { Datum = neues Datum(Datum) lass ZeitObj = { 'J+': date.getFullYear(), '(M+)': date.getMonth() + 1, '(d+)': Datum.getDate(), '(h+)': date.getHours(), '(m+)': date.getMinutes(), '(s+)': date.getSeconds() } für (Schlüssel in TimeObj) { let reg = neuer RegExp(Schlüssel) wenn (reg.test(Vorlage)) { Konsole.log(RegExp.$1) let Zeit = TimeObj[Schlüssel] // Bestimmen Sie, ob die aktuelle Vorlagenzeit zweistellig oder einstellig ist. // Wenn es sich um eine zweistellige Zeit handelt, fügen Sie vorne eine Null hinzu, 1 -> 01 // Wenn es eine Ziffer ist, muss keine Null hinzugefügt werden if (RegExp.$1.length > 1) { Zeit = Zeit >= 10 ? Zeit : '0' + Zeit } Vorlage = Vorlage.ersetzen(reg, Zeit) } } Rückgabevorlage } } }) </Skript> ZusammenfassenDies ist das Ende dieses Artikels über Slots und Filter in Vue. Weitere relevante Inhalte zu Vue-Slots und -Filtern finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detailliertes Installations- und Konfigurationstutorial von MySQL 5.7 unter Win10
>>: Detaillierte Erklärung, wie Zabbix den Master-Slave-Status von MySQL überwacht
Inhaltsverzeichnis Klassischer Ansatz Frage Weite...
Vorteile eines programmatischen Ansatzes 1. Globa...
Für die Bereitstellung von Hyper-V gelten die fol...
Laderegeln der Require-Methode Laden aus dem Cach...
Nginx Rewrite-Nutzungsszenarien 1. Sprung der URL...
Kürzlich bestand der Kunde eines Projekts darauf,...
Inhaltsverzeichnis 1. Grundtypen 2. Objekttyp 2.1...
Inhaltsverzeichnis Vorwort 1. Lebenszyklus in Vue...
Vorwort HTTP ist ein zustandsloses Kommunikations...
Einleitung Bisher wurden unsere Docker-Images in ...
Was ist Lastenausgleich? Der Lastausgleich wird h...
Installieren Sie vor der Installation von Tomcat ...
1. Verwenden Sie CSS-Sprites. Der Vorteil besteht ...
Lassen Sie uns zunächst einige gängige Anwendungs...
Inhaltsverzeichnis Definition Konstruktorkörper s...