Когда вы используете синтаксис Vue .component (), вы регистрируете компонент глобально, поэтому он может использоваться любыми новыми Vue экземплярами, созданными впоследствии. Итак:
new Vue({ el: '#app' }) // this Vue instance does not contain the greet component because it does not exists yet.
Vue.component('greet', {
data() {
return {
}
},
template: '<div>hello!</div>'
})
Вместо:
Vue.component('greet', {
data() {
return {
}
},
template: '<div>hello!</div>'
})
new Vue({ el: '#app' }) // this Vue instance will contain the greet component because it was already created and registered.
Также <greet="greet"></greet>
не является допустимым синтаксисом. Это должно быть <greet></greet>
.
Вы должны удалить приветствие из функции data (). в нем нет смысла и смысла.
Окончательный код должен выглядеть так:
<body>
<div id="app">
<greet></greet>
</div>
</body>
Vue.component('greet', {
template: '<div>hello!</div>'
})
new Vue({ el: '#app' })