Je suis un débutant avec Vue.js et j'essaie de créer une application qui répond à mes tâches quotidiennes et je suis tombé sur Vue Components. Voici donc ce que j'ai essayé mais malheureusement, cela me donne cette erreur:
vue.js: 1023 [Vue warn]: Elément personnalisé inconnu: - avez-vous enregistré correctement le composant? Pour les composants récursifs, assurez-vous de fournir l'option "nom".
Des idées, de l'aide, s'il vous plaît?
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>
la source
ES6
, comme çacomponents: {myTask},
Ou s'il s'agit d'un petit composant, vous pouvez le créer à l'intérieur de lacomponents
propriété. Mais cela ne semble pas être le bon moyen, à cause de l'échelle de l'application.data: function() { return { property1: 1, property2: 2 } }
Définissez juste
Vue.component()
avantnew vue()
.Vue.component('my-task',{ ....... }); new Vue({ ....... });
mise à jour
<anyTag>
en<anytag>
<myTag>
utiliser<my-tag>
Problème Github: https://github.com/vuejs/vue/issues/2308
la source
new Vue({})
).Cela m'a résolu: j'ai fourni un troisième argument étant un objet.
dans
app.js
(travail avec laravel et webpack):Vue.component('news-item', require('./components/NewsItem.vue'), { name: 'news-item' });
la source
N'abusez pas
Vue.component()
, il enregistre les composants dans le monde entier. Vous pouvez créer un fichier, le nommer MyTask.vue, y exporter l'objet Vue https://vuejs.org/v2/guide/single-file-components.html puis l'importer dans votre fichier principal, et n'oubliez pas de l'enregistrer :new Vue({ ... components: { myTask } ... })
la source
Assurez-vous que vous avez ajouté le composant aux composants.
Par exemple:
export default { data() { return {} }, components: { 'lead-status-modal': LeadStatusModal, }, }
la source
C'est un bon moyen de créer un composant en vue.
let template = `<ul> <li>Your data here</li> </ul>`; Vue.component('my-task', { template: template, data() { }, props: { task: { type: String } }, methods: { }, computed: { }, ready() { } }); new Vue({ el : '#app' });
la source
Je suivais la documentation Vue à https://vuejs.org/v2/guide/index.html lorsque j'ai rencontré ce problème.
Plus tard, ils clarifient la syntaxe:
( https://vuejs.org/v2/guide/components.html#Organizing-Components )
Ainsi, comme Umesh Kadam le dit ci-dessus, assurez-vous simplement que la définition globale du composant précède l'
var app = new Vue({})
instanciation.la source
J'ai eu la même erreur
cependant, j'ai totalement oublié de courir
npm install && npm run dev
pour compiler les fichiers js.peut-être que cela aide les débutants comme moi.
la source
OK, cette erreur peut sembler évidente, mais un jour je cherchais une réponse JUSTE POUR SAVOIR QUE J'AI AVOIR déclaré 2 fois COMPOSANTS . cela me rendait dingue car VueJS ne se plaint pas du tout quand vous le déclarez 2 fois, évidemment j'avais beaucoup de code entre les deux, et quand j'ai ajouté un nouveau composant, j'ai placé la déclaration en haut, alors que j'en avais aussi une près du fond. Alors la prochaine fois que tu cherches ça en premier, ça fait gagner beaucoup de temps
la source