# SchemaField (Markup Schema)

# 描述

SchemaField 组件是专门用于解析JSON-Schema动态渲染表单的组件。 在使用 SchemaField 组件的时候,需要通过 createSchemaField 工厂函数创建一个 SchemaField 组件。

# 签名

type ComposeSchemaField = {
  SchemaField: Vue.Component<any, any, any, ISchemaFieldProps>
  SchemaMarkupField: Vue.Component<any, any, any, ISchema>
  SchemaStringField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
  SchemaObjectField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
  SchemaArrayField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
  SchemaBooleanField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
  SchemaDateField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
  SchemaDateTimeField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
  SchemaVoidField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
  SchemaNumberField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
}

//工厂函数参数属性
interface ISchemaFieldFactoryProps {
  components?: {
    [key: string]: Vue.Component //组件列表
  }
  scope?: any //全局作用域,用于实现协议表达式变量注入
}

//SchemaField属性
interface ISchemaFieldProps extends IFieldFactoryProps {
  schema?: ISchema //字段schema
  scope?: any //协议表达式作用域
  name?: string //字段名称
}

//工厂函数
interface createSchemaField {
  (props: ISchemaFieldFactoryProps): ComposeSchemaField
}

IFieldFactoryProps 参考 IFieldFactoryProps (opens new window)

ISchema 参考 ISchema

# 用例

Last Updated: 5/17/2021, 11:42:08 AM