Я использую Vue3 и webpack для своего проекта. Я могу создавать компоненты с помощью Vue.component в Vue 2. Но в Vue3 это не работает. Вот мой код.
main.ts
import { createApp } from 'vue'
import axios from 'axios'
import App from './App.vue'
const app = createApp(App);
app.config.globalProperties.$axios = axios;
app.component('button-counter', {
data: () => ({
count: 0
}),
template: '<button @click="count++">Clicked {{ count }} times.</button>'
})
const vm = app.mount('#app')
Компонент - 'button-counter' отлично работает выше. Но это не работает, когда я копирую в файл App.vue. Оба компонента «кнопка-счетчик1» и «кнопка-счетчик2» не могут быть зарегистрированы, и возникает ошибка «Vue не определен».
<template>
<h2>Test</h2>
<p>{{meg}}</p>
<h2>Button counter</h2>
<button-counter></button-counter>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
name: 'App',
setup() {
return {
msg: 'message from setup',
}
},
})
const app1 = Vue.component('button-counter1', {
data: () => ({
count: 0
}),
template: '<button @click="count++">Clicked {{ count }} times.</button>'
})
const app2 = app.component('button-counter2', {
data: () => ({
count: 0
}),
template: '<button @click="count++">Clicked {{ count }} times.</button>'
})
</script>
Заранее спасибо.