【发布时间】:2020-01-24 08:03:22
【问题描述】:
为了使用动态定义的单页组件,我们使用component标签,因此:
<component v-bind:is="componentName" :prop="someProperty"/>
...
import DynamicComponent from '@/components/DynamicComponent.vue';
...
components: {
DynamicComponent
},
props: {
componentName: String,
someProperty: null,
}
问题是,这根本不是非常动态的,因为我们可能想要在这里使用的每个组件不仅需要静态导入,还需要在components 中注册。
我们尝试这样做,至少是为了避免需要导入所有内容:
created() {
import(`@/components/${this.componentName}.vue`);
},
但这当然会失败,因为似乎必须在到达 created() 之前定义 DynamicComponent。
我们如何才能使用真正动态的组件,即在运行时导入和注册,只给出它的名称?
【问题讨论】:
标签: vue.js dynamic nuxt.js vue-dynamic-components