Field API
Field API 定义了表单字段的配置项,包括字段类型、验证规则、依赖联动等。
FieldSchema 类型
字段配置类型,定义单个表单字段的配置。
属性详解
type
字段类型,决定使用哪个默认组件。
类型:FieldType
必填:否
默认值:'string'
示例:
类型与默认组件映射:
name
字段名,用于数据绑定和表单操作。
类型:string
必填:是
示例:
label
字段显示名称,用于标签显示和验证错误信息。
类型:string
必填:是
示例:
required
是否必填,用于必填验证。
类型:boolean
必填:否
默认值:false
示例:
验证规则:
当 required 为 true 时,以下值会被判定为空:
nullundefined- 空字符串
'' - 空数组
[] - 空对象
{}
component
自定义组件名称,用于指定字段使用的组件。
类型:string
必填:否
默认值:'DefaultControl'
示例:
组件查找顺序:
- 如果指定了
component,从components对象中查找对应名称的组件 - 如果未指定
component,默认使用'DefaultControl' - 从
components对象中查找'DefaultControl'组件 - 如果都未找到,显示错误提示
"error component"
组件注册示例:
props
组件的额外属性,会传递给表单组件。
类型:Record<string, unknown>
必填:否
示例:
hidden
是否隐藏字段。设置 hidden: true 仅在视觉上隐藏字段(display: none),字段仍然会被渲染并存在于表单数据中。隐藏字段仍会参与验证 —— 如果隐藏字段设置了 required: true,仍会触发验证错误。如需跳过隐藏字段的验证,请使用条件 required 或自定义 validator。
类型:boolean
必填:否
默认值:false
示例:
deps
依赖字段数组,声明当前字段依赖的其他字段。
类型:string[]
必填:否
示例:
onDepsChange
依赖变化回调,当依赖字段的值发生变化时触发。支持同步和异步函数。
类型:OnDepsChange
必填:否
参数:
返回值:
返回值说明:
-
patch:仅返回需要更新的字段,会与原有数据合并
-
schema:返回更新后的字段配置,会替换原有配置
注意事项:
- 链式联动最多触发 20 次(防止无限循环)
deps和onDepsChange属性不能在回调中被修改data参数为只读,不要直接修改
示例:
链式联动:
当 patch 中的字段也是其他字段的依赖时,会触发链式联动:
注意事项:
- 最多支持 20 次链式触发(防止死循环)
deps和onDepsChange属性本身不能被修改data参数是只读的,不能直接修改
validator
验证函数,用于自定义验证逻辑。支持同步和异步验证。
类型:Validator
必填:否
参数:
返回值:
undefined:验证通过string:验证失败,返回错误信息
示例:
异步验证示例:
异常处理:
验证器抛出的异常会被捕获并转换为错误信息:
类型定义
FieldType
字段类型枚举。
FieldComponent
表单控件组件类型。
Validator
验证器类型。
ValidatorParams
验证器参数类型。
ValidatorReturn
验证器返回值类型。
OnDepsChange
依赖变化回调类型。
OnDepsChangeParams
依赖变化回调参数类型。
OnDepsChangeReturn
依赖变化回调返回值类型。