Detaillierte Erklärung der Verwendung von Vorlagen-Tags (einschließlich Zusammenfassung der Verwendung in Vue)

Detaillierte Erklärung der Verwendung von Vorlagen-Tags (einschließlich Zusammenfassung der Verwendung in Vue)

1. Template-Tag in HTML5

Der Inhalt im template in HTML wird nicht auf der Seite angezeigt. Beim Anzeigen der DOM-Struktur der Seite im Hintergrund ist jedoch template Vorlagentag vorhanden. Dies liegt daran, dass das Vorlagentag von Natur aus unsichtbar ist und display:none; festlegt.

<!--Auf der aktuellen Seite wird nur der Inhalt „Ich bin ein benutzerdefinierter Ausdruck abc“ angezeigt, nicht „Ich bin eine Vorlage“, da das Vorlagen-Tag von Natur aus unsichtbar ist-->
<template><div>Ich bin eine Vorlage</div></template>
<abc>Ich bin der benutzerdefinierte Ausdruck abc</abc>

2. Eigenschaften und Methoden der Vorlagen-Tag-Operation

  • content : In js hat das dem Vorlagen-Tag entsprechende DOM-Objekt ein Inhaltsattribut, und der entsprechende Attributwert ist ein DOM-Knoten und der Knotenname des Knotens ist #Dokumentfragment. Mit dieser Eigenschaft kann der Inhalt im Vorlagentag abgerufen werden. template對象.content kann die Methoden getElementById, querySelector und querySelectorAll aufrufen, um die darin enthaltenen untergeordneten Knoten abzurufen.
  • innerHTML : kann das HTML im Vorlagentag abrufen.
<Vorlagen-ID="Vorlage">
 <div id="div1">Ich bin eine Vorlage</div>
 <div>Ich bin eine Vorlage</div>
</Vorlage>
<Skript>
 let o = document.getElementById("tem");
 console.log(o.content.nodeName);//#Dokumentfragment
 console.log(o.content.querySelectorAll("div"));//Knotenliste(2) [div#div1, div]. Holen Sie sich ein Klassenarray console.log(o.content.getElementById("div1"));//<div id="div1">Ich bin eine Vorlage</div>
 console.log(o.innerHTML);//'<div id="div1">Ich bin eine Vorlage</div><div>Ich bin eine Vorlage</div>'
</Skript>

3. Vorlage in Vue

1. Das Vorlagen-Tag befindet sich innerhalb des an die Vue-Instanz gebundenen Elements

Es kann den Inhalt im Vorlagentag anzeigen, aber beim Überprüfen der DOM-Struktur im Hintergrund existiert das Vorlagentag nicht. Wenn das Vorlagentag nicht innerhalb des an die Vue-Instanz gebundenen Elements platziert wird, kann der darin enthaltene Inhalt standardmäßig nicht auf der Seite angezeigt werden, aber das Vorlagentag ist in der DOM-Struktur im Hintergrund vorhanden.

<div id="app">
 <!--Der Inhalt im Vorlagentag wird hier angezeigt und der Vorlagentag existiert nicht im DOM-->
 <Vorlage>
 <div>Ich bin eine Vorlage</div>
 <div>Ich bin eine Vorlage</div>
 </Vorlage>
</div>
<!--Der Inhalt im Vorlagen-Tag wird hier nicht auf der Seite angezeigt, aber das Tag und seine interne Struktur existieren in der DOM-Struktur-->
<Vorlagen-ID="Vorlage">
 <div id="div1">Ich bin eine Vorlage</div>
 <div>Ich bin eine Vorlage</div>
</Vorlage>
<script src="node_modules/vue/dist/vue.js"></script>
<Skript>
 lass vm = neues Vue({
 el: "#app",
 });
</Skript>

Hinweis: Das Vorlagentag innerhalb des an die Vue-Instanz gebundenen Elements unterstützt die v-show-Direktive nicht, d. h. v-show="false" funktioniert für das Vorlagentag nicht. Das Vorlagentag unterstützt jetzt jedoch die Anweisungen v-if, v-else-if, v-else und v-for.

<div id="app">
 <Vorlage v-if="true">
 <!--Zu diesem Zeitpunkt wird der Inhalt im Vorlagen-Tag auf der Seite angezeigt, aber die DOM-Struktur verfügt nicht über ein Vorlagen-Tag-->
 <div>Ich bin eine Vorlage</div>
 <div>Ich bin eine Vorlage</div>
 </Vorlage>
 <div v-if="true">
 <!--Der Inhalt im Div-Tag wird auf der Seite angezeigt und die DOM-Struktur hat das äußerste Div-Tag-->
 <div>Ich bin eine Vorlage</div>
 <div>Ich bin eine Vorlage</div>
 </div>
 <!--6 Hier wird 'Ich bin eine Vorlage' ausgegeben und in der DOM-Struktur gibt es keinen Vorlagentag-->
 <template v-for="a in 3">
 <div>Ich bin eine Vorlage</div>
 <div>Ich bin eine Vorlage</div>
 </Vorlage>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<Skript>
 lass vm = neues Vue({
 el: "#app",
 });
</Skript>

2. Vorlageneigenschaft in der Vue-Instanz

Kompilieren Sie den Vorlagenattributwert in der Instanz und ersetzen Sie das an die Vue-Instanz gebundene Element durch das kompilierte DOM. Wenn das an die Vue-Instanz gebundene Element Inhalt enthält, wird der Inhalt direkt überschrieben.
Merkmale:

1) Wenn die Vue-Instanz ein Vorlagenattribut enthält, wird der Attributwert kompiliert und der kompilierte virtuelle DOM ersetzt direkt das an die Vue-Instanz gebundene Element (dh das an el gebundene Element).
2) Die DOM-Struktur im Vorlagenattribut kann nur ein Stammelement haben. Wenn mehrere Stammelemente vorhanden sind, müssen Sie v-if, v-else und v-else-if verwenden, um festzulegen, dass nur eines der Stammelemente angezeigt wird.
3) Die in den Daten und Methoden der Vue-Instanz definierten Daten können im Attributwert verwendet werden, der diesem Attribut entspricht.
<!--Auf dieser Seite wird „Hallo“ angezeigt-->
<div id="app"></div>
<!--Das Vorlagen-Tag muss hier außerhalb des an vue gebundenen Elements definiert werden, und der Inhalt im folgenden Vorlagen-Tag wird nicht auf der Seite angezeigt-->
<Vorlagen-ID="Erste">
 <div v-if="flag">{{msg}}<div>
 <div v-else>111<div>
</Vorlage>
<script src="./node_modules/vue/dist/vue.js"></script>
<Skript>
 lass vm = neues Vue({
 el:"#app",
 Daten:{
  Nachricht: "Hallo",
  Flagge: wahr
 },
 template:"#first" // Mit dieser Eigenschaft können Sie den gesamten Inhalt in der benutzerdefinierten Vorlageneigenschaft durch den Inhalt der App ersetzen. Der darin enthaltene Originalinhalt wird überschrieben. Beim Anzeigen der DOM-Struktur ist kein Vorlagentag vorhanden});
</Skript>

Im obigen Beispiel kann das Vorlagentag in HTML wie folgt in ein benutzerdefiniertes Tag geändert werden. Die folgende Methode kann das App-Element jedoch auch durch den Inhalt in den Tags <abc></abc> ersetzen, aber der Inhalt in den Tags <abc></abc> wird auch auf der Seite angezeigt. Daher wird hier das Vorlagentag verwendet, um die Vorlageneigenschaften zu definieren, die in der Vue-Instanz festgelegt werden müssen.

<abc id="Vorname">
 <div v-if="flag">{{msg}}<div>
 <div v-else>111<div>
</abc>

Das obige Beispiel kann auch wie folgt geschrieben werden

<!--Auf dieser Seite wird Hallo angezeigt-->
<div id="app"></div>
<script src="./node_modules/vue/dist/vue.js"></script>
<Skript>
 lass vm = neues Vue({
 el:"#app",
 Daten:{
  Nachricht: "Hallo",
  Flagge: wahr
 },
 template:"<div v-if='flag'>{{msg}}</div><div v-else>123</div>"//Eine Vorlage kann nur ein Stammelement enthalten. Wenn es mehrere gibt, müssen Sie mit v-if, v-else und v-else-if auswählen, welches angezeigt werden soll});
</Skript>

Dies ist das Ende dieses Artikels zur detaillierten Verwendung von Vorlagen-Tags (einschließlich einer Zusammenfassung der Verwendung in Vue). Weitere relevante Inhalte zur Verwendung von Vorlagen-Tags finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Beispiele für drei Möglichkeiten zum Schreiben von Vorlagen in Vue
  • Zusammenfassung der vier Möglichkeiten zum Schreiben von Vue2-Vorlagen
  • Wie rendert Vue den Tag-Inhalt in der Vorlage?
  • Detaillierte Erklärung, wie die Vue-Vorlage mehrere Stammknoten unterstützt
  • Drei Möglichkeiten zum Schreiben von Vorlagen in VUE

<<:  js generiert dynamisch Tabellen (Knotenoperationen)

>>:  Eine kurze Einführung in Vue-Filter, Lebenszyklusfunktionen und Vue-Ressourcen

Artikel empfehlen

JavaScript implementiert einen langen Bild-Scroll-Effekt

In diesem Artikel wird der spezifische Code für d...

Implementierungscode zur Verwendung der MongoDB-Datenbank in Docker

Holen Sie sich das Mongo-Image sudo docker pull m...

Vue3 erhält die aktuelle Routingadresse

Richtige Antwort Verwenden von useRouter : // Rou...

Upgrade der Docker-Version von MySQL 5.7 auf MySQL 8.0.13, Datenmigration

Inhaltsverzeichnis 1. Sichern Sie die alten MySQL...

Vue implementiert die Produktregisterkarte der Produktdetailseitenfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Docker-Overlay realisiert die Container-Kommunikation zwischen Hosts

Inhaltsverzeichnis 1. Docker-Konfiguration 2. Ers...

MySQL-Serie 9 MySQL-Abfrage-Cache und -Index

Inhaltsverzeichnis Tutorial-Reihe 1. MySQL-Archit...

So ändern Sie $ in # in Linux

In diesem System steht das #-Zeichen für den Root...

Benutzererfahrung bei der Neugestaltung der Portal-Website

<br />Vom Start der neuen Homepage von NetEa...

Detailliertes Beispiel für Zeilensperren in MySQL

Vorwort Sperren sind Synchronisierungsmechanismen...

Lösung für Ubuntu, das keine Verbindung zum Internet herstellen kann

Problembeschreibung: Ich habe einen Desktop-Compu...