动态组件don';无法在vue中使用typescript

动态组件don';无法在vue中使用typescript,typescript,vue.js,Typescript,Vue.js,Hello不在我的HelloWorld页面中呈现 HelloWorld.vue <template> <div> <component :is="Hello"></component> </div> </template> <script lang="ts"> import { Component, Prop, Vue } from 'vue-property-decorator' impo

Hello不在我的HelloWorld页面中呈现

HelloWorld.vue

<template>
  <div>
      <component :is="Hello"></component>
  </div>
</template>

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

@Component({
  components: {
  Hello
  }
  })
export default class HelloWorld extends Vue {
  @Prop() private msg!: string;
}
</script>

从“Vue属性装饰器”导入{Component,Prop,Vue}
从“./Hello.vue”导入Hello
@组成部分({
组成部分:{
你好
}
})
导出默认类HelloWorld扩展Vue{
@Prop()private msg!:字符串;
}
简而言之:

<template>
  <div>
      <component :is="Hello"></component>
  </div>
</template>

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

@Component({
  components: {Hello}
})
export default class HelloWorld extends Vue {
  @Prop() private msg!: string;
  
  private get component(): VueClass<Hello> {
    return Hello;
  }
}
</script>

从“Vue属性装饰器”导入{Component,Prop,Vue}
从“./Hello.vue”导入Hello
@组成部分({
组件:{Hello}
})
导出默认类HelloWorld扩展Vue{
@Prop()private msg!:字符串;
私有get组件():VueClass{
回复你好;
}
}

除了注册
Hello
组件外,还需要从计算属性返回其实例;您可能会将其分配给数据属性,如
private component:VueClass=Hello
,但重点是使其成为动态的,对吧,所以我在这里使用了计算的属性,因为动态组件需要来自
data
props
computed
的变量。很可能是
数据
。所以类似于
data(){return{component:“Hello”}
的东西可以工作。非常感谢。@A.Lau您应该把您的评论作为答案。如果我可以补充一个问题:如何键入动态组件?它是一个
Vue
实例吗?