动态引用组件 <component :is=“componentName“ />
在工作中常常会引用很多组件,如:
import com1 from '@/components/com1'
import com2 from '@/components/com2'
import com3 from '@/components/com3'
....
然后节点
<com1 />
<com2 />
<com2 />
代码臃肿不说,而且不灵活
使用动态组件来解决
<component :is="componentFun" />
methods: {
componentFun(){
// 此处可以灵活传组件路径名为值,做到用什么就传什么
let com1 = 'components/com1'
return require('@/' +com1 ).default
}
}
也可使用for
<template>
<div v-for(item,index) in list :key="index">
<component :is="componentFun(item)" />
</div>
</template>
methods: {
componentFun(item){
// 此处可以灵活传组件路径名为值,做到用什么就传什么
let com1 = item.components; // 'components/com1'
return require('@/' +com1 ).default
}
}