在Vue3中,可以使用<component>
组件来实现动态组件的加载,其使用方式如下:
- 在
setup
函数中引入defineComponent
函数:
import { defineComponent } from 'vue'
- 在
setup
函数中定义组件:
const ComponentA = defineComponent({
template: `
<div>Component A</div>
`
})
const ComponentB = defineComponent({
template: `
<div>Component B</div>
`
})
- 在模板中使用
<component>
组件,并动态绑定组件名:
<template>
<div>
<component :is="currentComponent"></component>
</div>
</template>
- 在
setup
函数中定义变量currentComponent
,并根据需要动态修改组件名:
setup() {
const currentComponent = ref('ComponentA')
const toggleComponent = () => {
currentComponent.value = currentComponent.value === 'ComponentA' ? 'ComponentB' : 'ComponentA'
}
return {
currentComponent,
toggleComponent
}
}
这样就可以实现在一个组件中动态地加载不同的子组件。