[英]Dynamic Components don't work in typescript in vue
the Hello don't render in my HelloWorld page Hello 不在我的 HelloWorld 页面中呈现
HelloWorld.vue 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>
In short:简而言之:
<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>
In addition to registering the Hello
component, you need to return its instance from a computed property;除了注册
Hello
组件,你还需要从一个计算属性返回它的实例; you could probably assign it to a data property like private component: VueClass<Hello> = Hello
, but the point is to make it dynamic, right, so I used the computed one here你可以将它分配给一个数据属性,比如
private component: VueClass<Hello> = Hello
,但重点是让它动态,对,所以我在这里使用了计算的
:is requires a variable. :is 需要一个变量。 you have passed a string.
你已经传递了一个字符串。 Make that syntax change and it should work
更改该语法,它应该可以工作
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.