Я новичок в Vue.js, и я пытаюсь создать приложение, которое обслуживает мои повседневные задачи, и я столкнулся с компонентами Vue. Итак, ниже я пробовал, но, к сожалению, это дает мне эту ошибку:
vue.js: 1023 [Vue warn]: Неизвестный пользовательский элемент: - Вы правильно зарегистрировали компонент? Для рекурсивных компонентов обязательно укажите параметр «имя».
Есть идеи, помогите, пожалуйста?
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>
источник
ES6
, например,components: {myTask},
или, если это небольшой компонент, вы можете создать его внутриcomponents
свойства. Но вроде не лучший вариант из-за масштаба приложения.data: function() { return { property1: 1, property2: 2 } }
Просто определитесь
Vue.component()
заранееnew vue()
.Vue.component('my-task',{ ....... }); new Vue({ ....... });
Обновить
<anyTag>
в<anytag>
<myTag>
использования<my-tag>
Проблема с Github: https://github.com/vuejs/vue/issues/2308
источник
new Vue({})
).Это решило проблему для меня: я предоставил третий аргумент, являющийся объектом.
in
app.js
(работа с laravel и webpack):Vue.component('news-item', require('./components/NewsItem.vue'), { name: 'news-item' });
источник
Не злоупотребляйте
Vue.component()
, он регистрирует компоненты глобально. Вы можете создать файл, назвать его MyTask.vue, экспортировать туда объект Vue https://vuejs.org/v2/guide/single-file-components.html, а затем импортировать его в свой основной файл и не забудьте зарегистрировать его. :new Vue({ ... components: { myTask } ... })
источник
Убедитесь, что вы добавили компонент к компонентам.
Например:
export default { data() { return {} }, components: { 'lead-status-modal': LeadStatusModal, }, }
источник
Это хороший способ создать компонент в 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' });
источник
Я следил за документацией Vue по адресу https://vuejs.org/v2/guide/index.html. когда столкнулся с этой проблемой.
Позже уточняют синтаксис:
( https://vuejs.org/v2/guide/components.html#Organizing-Components )
Итак, как сказал Умеш Кадам выше, просто убедитесь, что определение глобального компонента предшествует
var app = new Vue({})
созданию экземпляра.источник
У меня была такая же ошибка
однако я совершенно забыл запустить
npm install && npm run dev
компиляцию файлов js.может это поможет новичкам вроде меня.
источник
Хорошо, эта ошибка может показаться очевидной, но однажды я искал ответ, ЧТОБЫ УЗНАТЬ, ЧТО Я уже 2 раза объявлял КОМПОНЕНТЫ . это сводило меня с ума, поскольку VueJS вообще не жалуется, когда вы объявляете это 2 раза, очевидно, что у меня было много кода между ними, и когда я добавил новый компонент, я поместил объявление вверху, в то время как у меня также был один близко ко дну. Так что в следующий раз будет искать это в первую очередь, сэкономит много времени
источник