比如 A组件可以接收 name 那么就是:
<component :name="name" :is="A"
/>
B组件没有 name 就是:
<component :is="B"
/>
不能用单纯的 if else 来判断。
因为有几十个组件
这样好像就可以了,用 v-bind =""来动态设置参数
试了下 暂时没发现什么问题。
<component
:is="XX"
v-bind="getParams(参数)"
>
getParams(参数){
let bind = {};
if (条件) {
bind["name"] = XXXX;
}
else{
return bind;
}
}
直接传就行了,在需要的组件中用props定义,不需要的不定义就行
用哪个就传哪个
<component :component-param="{}" :is="A"/>
component-param是一个对象,对象的定义方式比较灵活,这样就可以动态实现了,动态添加或减少组件的props应该是不行的吧,因为组件的props是需要预先定义,通常我们写的template文件是需要compiler编译的