# 组件介绍
v-formly 内置了一些基础组件,包括常用的输入框、选择框、单选、多选、下拉框、上传等组件,覆盖了大多数业务所需要的组件需求,如果这些内置组件不足以满足你的业务,你也可以自定义组件。
# 内置组件属性
v-formly 中的内置组件为了保证与原生 AntDv 组件的功能保持一致性,尽量不破坏原有属性名称和定义,所以在下述具体组件介绍中,我们只列出属性中不一致的或新添加的,一致的地方请参考 AntDv 文档,我们列出了组件对应关系如下,请自行查阅:
# 内置组件与 AntDv 组件一一对应关系
内置组件与 AntDv 组件一一对应关系 =>
AutoComplete 自动完成 -> AutoComplete 自动完成 (opens new window)
Boolean 开关 -> Switch 开关 (opens new window)
Cascader 级联选择 -> Cascader 级联选择 (opens new window)
Checkbox 多选框 -> Checkbox 多选框 (opens new window)
Date 日期选择框 -> DatePicker 日期选择框 (opens new window)
Number 数字输入框 -> InputNumber 数字输入框 (opens new window)
Radio 单选框 -> Radio 单选框 (opens new window)
Rate 评分 -> Rate 评分 (opens new window)
Select 选择器 -> Select 选择器 (opens new window)
Slider 滑动输入条 -> Slider 滑动输入条 (opens new window)
String 文本框 -> Input 输入框 (opens new window)
Tag 标签 -> Tag 标签 (opens new window)
# 关于slot
的传递
v-formly 中的内置组件封装的是 AntDv 的表单组件,这样就带来一个问题,一些类型为slot
的属性我们无法透传,比如Input 输入框
的addonBefore
属性,它即可以直接传字符串,这个没问题,但是slot
我们没法传进去,因为我们对a-input
做了封装,在使用 v-formly 的时候我们无法直接接触a-input
组件,所以这里我让模板<template>xxx</template>
一级一级的从父组件传递到子组件,再传递到孙子组件,直到传递到 AntDv 原生组件为止。下面我们举例说明一下:
从上面的代码中,我们可以看到,我们这里的前缀使用了slot
来传值,我们只需要在meta
里面定义slotNameOfPrefix
来标明它的slot name
,然后在v-formly
模板标签里面定义我们需要传递的模板内容,从而让表单知道我需要把这个slot
模板传递到 AntDv 的输入框,这样就达到了slot
的传递。
提示
v-formly 的每个表单项的属性中如果有需要传递slot
的,必须保证slot name
的唯一(比如这里的slotNameOfPrefix
和slotNameOfSuffix
的值必须不一样),否则无法识别或者识别错误。
Array 数组 →