Zuerst ist es möglich, eine Komponente mit einem Selektor oder dem Element #id zu definieren. Es funktioniert jedoch nicht ganz so, wie Sie denken, wenn ich richtig verstehe, was Sie wollen.
Verfahren nicht weit verbreitet sind oder sogar gut dokumentiert, link & link, aber Sie können verwenden, was als eine x-Vorlage bekannt ist. Sie definieren die Komponente wie folgt.
Vue.component('my-cool-component', {
template: '#my-cool-component', //refers to script tag id
data() {
//
},
methods: {
//
}
});
Dann schließen Sie die aktuelle Vorlage Markup in Ihrem HTML innerhalb eines 'text/x-template' Script-Tag mit der Vorlage ID Set von Ihrer Komponente.
<script type="text/x-template" id="my-cool-component">
<section>
<h1>Title</h1>
<p>...</p>
</section>
</script>
Im Fall von oben können Sie nur Standard-HTML-Tags verwenden.
jedoch weiter, um den zweiten Teil Ihrer Frage zu klären, sollten Sie in der Lage sein, benutzerdefinierte HTML-Tags zu verwenden, wenn in Vorlagen ohne Sorge Ihre Komponenten zu benennen, da diese durch Vue.js analysiert werden aus während der Wiedergabe. Zum Beispiel sind, wenn Sie alles, was Sie in der Komponente Markup direkt anstatt Literale mit Vorlage Vorlage zu schreiben, wie folgt,
Vue.component('my-cool-component', {
template: `<section>
<h1>Title</h1>
<p>...</p>
</section>',
data() {
//
},
methods: {
//
}
});
dann in Ihrer Seite Markup, wenn Sie auch Ihre eigenen HTML-Element-Tags <my-cool-component></my-cool-component>
Vue werden die Tags entfernen und nur Rendern Sie das Vorlagen-Markup.
<section>
<h1>Title</h1>
<p>...</p>
</section>