Was ist der Unterschied zwischen `el` und `Vorlage` im vue-Komponente und app?
Einem VUE-Komponente (und die app selbst) haben eine el:
und auch ein template
.
Ich will verstehen, was der Unterschied ist, Wann muss ich Sie verwenden und Wann die andere:
Wenn ich ein Projekt erstellen mit Nonne CLI-von der minimal-VUE-OnsenUI Vorlage sehe ich:
new Vue({
el: '#app',
template: '<app></app>',
components: { App }
});
Aus der sehr ausführlichen Dokumentation keine Beispiele, um eine lange Geschichte kurz, ich nehme an, dass die template
dom-element und alles, was es ersetzt die el
dom-element. (Die Schablone kann nur einen einzigen root-rechten?). Zum Beispiel : Wenn meine html-ist:
<html>...
<body>...
<replaceThis></replaceThis>...
und mein vue js sagt:
el: "replace-this",
template: "<div id='replaced'>hi there</div>"
Dann bekomme ich :
<html>...<body>...<div id='replaced'>hi there</div>...
aber ich kann auch schreiben:
el: "#bla",
template: "#blu"
Dann, wenn mein html ist
<html>
<body>
<div id="bla">
anything inside here including the surrounding div will be replaced
</div>
<template id="blu">
<span id ="replacing-html">
when ran in span, it stays mainly in the pan
</span>
</template>
</body>
</html>
dann den div mit der id bla
ersetzt werden, mit der replacing-html
span elelment, die innerhalb der template
. (das template-tag selbst mit allem, was in wird es immer noch der emittierten html. richtig?)
So, ich brauche, um zu verstehen:
- Ist die
template
Inhalte austauschen derel
element? - Muss die
template
nur ein einziges root-element direkt unter ihm? - Bin ich richtig mit meinem ersten Beispiel?
- Bin ich richtig über das zweite Beispiel?
- Wird die
template
tag mit allem, was in es bleibt in der emittierten html? - Was passiert in dem Fall der Nonne Vue-OnsenUI Beispiel oben, wo die
el
ist die gleiche wie die Vorlage: "app". Ist das nicht rekursiv? Was ersetzt wird, und mit was?
- Bitte ändern Sie nicht Ihre Frage, nachdem Sie bereits angenommen, eine Antwort auf Ihre ursprüngliche Frage. Wenn Sie eine neue Frage erstellen eine neue post für Sie.
- Ich habe nicht wirklich ändern, sondern aktualisiert für übersichtlichkeit. Und kommentiert das akzeptiert und richtige Antwort, durch die Ausarbeitung mit Beispielen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der Dokumentation auf der
el
- option:Aus der Dokumentation auf der
template
- option:In deinem Beispiel die Vue-Instanz, die Sie definieren, ist die Registrierung ein
app
Komponente und dann mit, dass in seiner template-definition. Es ist auch auf der Suche nach einem vorhandenen element im DOM mit der idapp
zu verwenden, da es das zugehörige element bei der Montage.Ich denke, deine Verwirrung kommt von der Tatsache, dass beide mit etwas namens "app". Haben Sie nicht benannt zu werden, die gleiche Sache.