Saya seorang pemula dengan Vue.js dan saya mencoba membuat aplikasi yang melayani tugas harian saya dan saya menemukan Vue Components. Jadi di bawah ini adalah apa yang saya coba tetapi sayangnya, ini memberi saya kesalahan ini:
vue.js: 1023 [Vue warn]: Elemen kustom tidak diketahui: - apakah Anda mendaftarkan komponen dengan benar? Untuk komponen rekursif, pastikan untuk memberikan opsi "nama".
Ada ide, tolong, tolong?
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>
sumber
ES6
,components: {myTask},
atau jika itu beberapa komponen kecil, Anda dapat membuatnya di dalamcomponents
properti. Tapi sepertinya bukan cara yang baik, karena skala aplikasi.data: function() { return { property1: 1, property2: 2 } }
Definisikan saja
Vue.component()
sebelumnyanew vue()
.Vue.component('my-task',{ ....... }); new Vue({ ....... });
memperbarui
<anyTag>
menjadi<anytag>
<myTag>
digunakan<my-tag>
Masalah Github: https://github.com/vuejs/vue/issues/2308
sumber
new Vue({})
).Ini memecahkannya untuk saya: Saya memberikan argumen ketiga sebagai objek.
di
app.js
(bekerja dengan laravel dan webpack):Vue.component('news-item', require('./components/NewsItem.vue'), { name: 'news-item' });
sumber
Jangan terlalu sering digunakan
Vue.component()
, ini mendaftarkan komponen secara global. Anda dapat membuat file, beri nama MyTask.vue, ekspor di sana objek Vue https://vuejs.org/v2/guide/single-file-components.html dan kemudian mengimpor file utama Anda, dan jangan lupa untuk mendaftarkannya :new Vue({ ... components: { myTask } ... })
sumber
Pastikan Anda telah menambahkan komponen ke komponen.
Sebagai contoh:
export default { data() { return {} }, components: { 'lead-status-modal': LeadStatusModal, }, }
sumber
Ini adalah cara yang bagus untuk membuat komponen di 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' });
sumber
Saya sedang mengikuti dokumentasi Vue di https://vuejs.org/v2/guide/index.html ketika saya mengalami masalah ini.
Kemudian mereka mengklarifikasi sintaks:
( https://vuejs.org/v2/guide/components.html#Organizing-Components )
Jadi seperti yang dikatakan Umesh Kadam di atas, pastikan saja definisi komponen global ada sebelum
var app = new Vue({})
instansiasi.sumber
Saya mengalami kesalahan yang sama
namun, saya benar-benar lupa menjalankan
npm install && npm run dev
kompilasi file js.mungkin ini membantu pemula seperti saya.
sumber
OK, kesalahan ini mungkin tampak jelas, tetapi suatu hari saya mencari jawaban HANYA UNTUK DITEMUKAN BAHWA SAYA TELAH 2 kali KOMPONEN menyatakan. Itu membuat saya gila karena VueJS tidak mengeluh sama sekali ketika Anda menyatakannya 2 kali, jelas saya memiliki banyak kode di antaranya, dan ketika saya menambahkan komponen baru, saya menempatkan deklarasi di atas, sementara saya juga punya satu dekat ke bawah. Jadi lain kali mencari yang pertama ini, menghemat banyak waktu
sumber