
灵活表单(fform)是具有最小代码冗余的表单生成器,同时具有极高的灵活性和可扩展性。 使用的技术堆栈: React (v16), Redux (可选), JSONSchema和TypeScript 。 主要思想是最大程度地重用电路,组件和功能。
特色功能
- 缩小98kb ,压缩28kb
- 快速入门表格设计器
- 使用
oneOf
, allOf
, $ref
属性oneOf
,组合和重用表单或表单的一部分 - 验证同步/异步/ JSON /提交
- 本机redux支持,但可以使用任何其他存储(包括内部存储)
- 完全支持数组(添加/删除/移动)
- 内置查看器
- 完全可定制和可添加的表单元素
- SSR支持
- 没有依赖关系(作为外部响应)
由于根据JSONSchema规范,它仅由数据以JSON格式定义,因此在fform中,该形式由2个对象定义:
- JSONSchema方案(草案v4,具有其他属性),仅包含JSON数据,并描述表单字段和对象的位置,如按钮,链接,选项卡等。
- 一个元素对象,其中包含React(v16)组件,功能,组件的常用部分以及原则上可以从elements对象的任何部分或JSONSchema对象的扩展字段引用的任何其他js或JSON代码。 从本质上讲,元素是一个代码块的存储库,然后将其组装成整个形式,而这些塞浦路斯人的基本程度由开发人员确定。
现成的电路,组件和功能的灵活性,可扩展性和重新应用性实现如下:
- 使用$ ref和allOf属性扩展模式,如JSONSchema规范中所述 。 链接到示例 。
- 使用相似的原理,但是使用不同的语法来扩展elements对象(以在视觉上区分方案扩展的位置和元素扩展的位置)。 文献资料 链接到示例 。
- 数据和事件处理程序使用js函数中的管道的方式与linux大致相同。 一个功能的输出将馈送到下一个功能的输入,该功能(通过正确划分功能)允许您重用现有功能,并仅在需要尚未实现的功能时添加新功能。 文献资料 链接到示例 。
参考文献