Ich bin ein Anfänger mit Vue.js und versuche, eine App zu erstellen, die meine täglichen Aufgaben erfüllt, und ich bin auf Vue Components gestoßen. Also unten ist, was ich versucht habe, aber leider gibt es mir diesen Fehler:
vue.js: 1023 [Vue warn]: Unbekanntes benutzerdefiniertes Element: - Haben Sie die Komponente korrekt registriert? Stellen Sie für rekursive Komponenten sicher, dass Sie die Option "Name" angeben.
Irgendwelche Ideen, bitte helfen?
new Vue({
el : '#app',
data : {
tasks : [
{ name : "task 1", completed : false},
{ name : "task 2", completed : false},
{ name : "task 3", completed : true}
]
},
methods : {
},
computed : {
},
ready : function(){
}
});
Vue.component('my-task',{
template : '#task-template',
data : function(){
return this.tasks
},
props : ['task']
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.js"></script>
<div id="app">
<div v-for="task in tasks">
<my-task :task="task"></my-task>
</div>
</div>
<template id="task-template">
<h1>My tasks</h1>
<div class="">{{ task.name }}</div>
</template>
quelle
ES6
,components: {myTask},
oder wenn es sich um eine kleine Komponente handelt, können Sie es innerhalb dercomponents
Eigenschaft erstellen . Aufgrund der App-Skalierung scheint dies jedoch kein guter Weg zu sein.data: function() { return { property1: 1, property2: 2 } }
Einfach
Vue.component()
vorher definierennew vue()
.aktualisieren
<anyTag>
nach<anytag>
<myTag>
Gebrauch<my-tag>
Github-Problem: https://github.com/vuejs/vue/issues/2308
quelle
new Vue({})
) platziert werden soll.Dies löste es für mich: Ich lieferte ein drittes Argument als Objekt.
in
app.js
(Arbeiten mit Laravel und Webpack):quelle
Nicht überbeanspruchen
Vue.component()
, es werden Komponenten global registriert. Sie können eine Datei erstellen, sie MyTask.vue nennen, dort das Vue-Objekt https://vuejs.org/v2/guide/single-file-components.html exportieren und dann in Ihre Hauptdatei importieren. Vergessen Sie nicht, sie zu registrieren ::quelle
Stellen Sie sicher, dass Sie die Komponente zu den Komponenten hinzugefügt haben.
Beispielsweise:
quelle
Dies ist eine gute Möglichkeit, eine Komponente in vue zu erstellen.
quelle
Ich habe die Vue-Dokumentation unter https://vuejs.org/v2/guide/index.html verfolgt, als ich auf dieses Problem gestoßen bin.
Später klären sie die Syntax:
( https://vuejs.org/v2/guide/components.html#Organizing-Components )
Wie Umesh Kadam oben sagt, stellen Sie einfach sicher, dass die globale Komponentendefinition vor der
var app = new Vue({})
Instanziierung erfolgt.quelle