# 生成自定义组件
form-create 支持的在表单内部生成任何 vue 组件
提醒
# 通过component
配置项设置自定义组件v2.5.20+
通过这种方式可以跳过挂载自定义组件环节
const rule = {
type:'test',
component: TestComponent
}
# 挂载自定义组件
通过 form-create
生成的组件需要先通过以下方式挂载后才可以生成.
注意
TestComponent
为自定义组件- 1.x版本使用局部挂载的方式挂载组件需要在挂载
form-create
之前执行
全局挂载
Vue.component(TestComponent)
局部挂载
formCreate.component(TestComponent.name, TestComponent)
# 通过标签生成组件
通过建立一个虚拟 DOM的方式生成自定义组件
# 生成
{
type:'i-button',
name: 'btn',
props:{
type:'primary',
field:'btn',
loading:true
},
children:['加载中']
}
# 修改
通过fApi.component()
方法获取组件的生成规则并修改
fApi.component().btn.props.loading = false
# 示例
通过自定义组件实现布局
# 通过模板生成组件
通过模板的方式生成自定义组件, 不推荐
# 生成
{
type:'template',
name:'btn'
template:'<i-button :loading="loading">{{text}}<i-button>',
vm(){
return new Vue({
data:{
loading:true,
text:'正在加载中'
}
})
}
}
# 预定义 props
组件生成时会给自定义组件注入以下参数
formCreateInject
formCreateInject.api
fapiformCreateInject.options
rule.optionsformCreateInject.rule
生成规则formCreateInject.prop
最终生成规则formCreateInject.field
rule.field