需求
需要加载大量的组件并传递参数,组件数量不一定,一个个去impor会很繁琐且累赘
记录下参考文档及解决办法
我的组件
<template>
<!--eslint-disable-next-line -->
<component v-bind:is="myComponent" :option="chartOptions"/>
</template>
<script>
export default {
props: {
dataSource: {
type: Object,
default: () => {}
}
},
data() {
return {
chartOptions: null
}
},
computed: {
myComponent() {
const component = require(`@/components/cppe-chart/${this.dataSource.type}.vue`).default;
return component;
}
},
created() {
this.chartOptions = this.dataSource.options
}
}
</script>
参考博客: VUE之组件的动态注册和动态加载.