Soy un principiante con Vue.js y estoy tratando de crear una aplicación que satisfaga mis tareas diarias y me encontré con Vue Components. Entonces, a continuación se muestra lo que he intentado, pero desafortunadamente, me da este error:
vue.js: 1023 [Vue warn]: elemento personalizado desconocido: - ¿registró el componente correctamente? Para componentes recursivos, asegúrese de proporcionar la opción "nombre".
¿Alguna idea, ayuda, por favor?
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>
fuente
ES6
, asícomponents: {myTask},
O si es un componente pequeño, puede crearlo dentro de lacomponents
propiedad. Pero parece que no es una buena manera, debido a la escala de la aplicación.data: function() { return { property1: 1, property2: 2 } }
Solo defina
Vue.component()
antesnew vue()
.Vue.component('my-task',{ ....... }); new Vue({ ....... });
actualizar
<anyTag>
a<anytag>
<myTag>
usar<my-tag>
Problema de Github: https://github.com/vuejs/vue/issues/2308
fuente
new Vue({})
).Esto me resolvió: proporcioné un tercer argumento que es un objeto.
en
app.js
(trabajando con laravel y webpack):Vue.component('news-item', require('./components/NewsItem.vue'), { name: 'news-item' });
fuente
No lo use en exceso
Vue.component()
, registra componentes a nivel mundial. Puede crear un archivo, nombrarlo MyTask.vue, exportar allí el objeto Vue https://vuejs.org/v2/guide/single-file-components.html y luego importarlo en su archivo principal, y no olvide registrarlo :new Vue({ ... components: { myTask } ... })
fuente
Asegúrese de haber agregado el componente a los componentes.
Por ejemplo:
export default { data() { return {} }, components: { 'lead-status-modal': LeadStatusModal, }, }
fuente
Esta es una buena forma de crear un componente 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' });
fuente
Estaba siguiendo la documentación de Vue en https://vuejs.org/v2/guide/index.html cuando encontré este problema.
Posteriormente aclaran la sintaxis:
( https://vuejs.org/v2/guide/components.html#Organizing-Components )
Entonces, como dice Umesh Kadam anteriormente, solo asegúrese de que la definición del componente global venga antes de la
var app = new Vue({})
instanciación.fuente
Tuve el mismo error
sin embargo, me olvidé por completo de ejecutar la
npm install && npm run dev
compilación de los archivos js.tal vez esto ayude a los novatos como yo.
fuente
OK, este error puede parecer obvio, pero un día estaba buscando una respuesta SOLO PARA ENCONTRAR QUE TENÍA 2 veces declaradas COMPONENTES . me estaba volviendo loco ya que VueJS no se queja en absoluto cuando lo declaras 2 veces, obviamente tenía mucho código en el medio, y cuando agregué un nuevo componente, coloqué la declaración en la parte superior, mientras que también tenía uno cerca del fondo. Así que la próxima vez busque esto primero, ahorrará mucho tiempo
fuente