动态组件don';无法在vue中使用typescript
Hello不在我的HelloWorld页面中呈现 HelloWorld.vue动态组件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
<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
实例吗?