仅通过基于类的组件学习Vue和TypeScript,我的单文件组件如下所示:

<template>
    ...
    <div>
        <contact-component v-bind:key="c.id" v-for="c in contacts">
        </contact-component>
    </div>
</template>

<script lang="ts">
import ContactComponent from "./Contact.vue";
import { Component, Vue } from 'vue-property-decorator'

@Component
export default class ContactsComponent extends Vue {
    data() {...}
    components = { ContactComponent }
}
</script>

它会生成以下错误:

未知自定义元素:-您注册了

显然,我对组件的注册不起作用,但我不知道如何在TypeScript中解决这个问题.注册ContactComponent的正确方法是什么,以便在上述模板中使用?

推荐答案

这样地


@Component({
  components: { ContactComponent }
})
export default class ContactsComponent extends Vue {}

Vue.js相关问答推荐

使用nuxt I18N验证规则消息翻译

如何将 cogo toast PRIVE集成到nuxt3中?

如何默认打开一个v-list-group?

Vue 2 如何在全局函数中返回观察者

在移动版本中使用标准的 v-data-table

在 Vue.js 2.6 的 Javascript 中访问 的内容

如何通过 setup() 发出多个参数?

用 axios 搜索:新字符时取消之前的请求

如何在 Vue 中编译从外部 api 加载的模板

使用 v-slot:body 时 Vuetify v-data-table 没有响应

Vue:需要禁用页面上的所有输入

如何为 Vue 项目设置 lint-staged?

Vuejs 2,VUEX,编辑数据时的数据绑定

Vue路由保持活动和挂载行为

我在 Nuxt 2.14.0 中运行的是什么版本的 Vue?

Select 下拉列表中的复选框后如何清除 v-autocomplete(多个)搜索输入?

更改时(change)调用函数

从 vuex 存储访问 $vuetify 实例属性

Vue - 重用方法的最佳方式

在 Vuejs 中全局导入 Axios 方法