fform:React&JSONSchema-最大的灵活性

fform


灵活表单(fform)是具有最小代码冗余的表单生成器,同时具有极高的灵活性和可扩展性。 使用的技术堆栈: React (v16), Redux (可选), JSONSchemaTypeScript 。 主要思想是最大程度地重用电路,组件和功能。


特色功能


  • 缩小98kb ,压缩28kb
  • 快速入门表格设计器
  • 使用oneOfallOf$ref属性oneOf ,组合和重用表单或表单的一部分
  • 验证同步/异步/ JSON /提交
  • 本机redux支持,但可以使用任何其他存储(包括内部存储)
  • 完全支持数组(添加/删除/移动)
  • 内置查看器
  • 完全可定制和可添加的表单元素
  • SSR支持
  • 没有依赖关系(作为外部响应)

由于根据JSONSchema规范,它仅由数据以JSON格式定义,因此在fform中,该形式由2个对象定义:


  • JSONSchema方案(草案v4,具有其他属性),仅包含JSON数据,并描述表单字段和对象的位置,如按钮,链接,选项卡等。
  • 一个元素对象,其中包含React(v16)组件,功能,组件的常用部分以及原则上可以从elements对象的任何部分或JSONSchema对象的扩展字段引用的任何其他js或JSON代码。 从本质上讲,元素是一个代码块的存储库,然后将其组装成整个形式,而这些塞浦路斯人的基本程度由开发人员确定。

现成的电路,组件和功能的灵活性,可扩展性和重新应用性实现如下:


  • 使用$ ref和allOf属性扩展模式,如JSONSchema规范中所述链接到示例
  • 使用相似的原理,但是使用不同的语法来扩展elements对象(以在视觉上区分方案扩展的位置和元素扩展的位置)。 文献资料 链接到示例
  • 数据和事件处理程序使用js函数中的管道的方式与linux大致相同。 一个功能的输出将馈送到下一个功能的输入,该功能(通过正确划分功能)允许您重用现有功能,并仅在需要尚未实现的功能时添加新功能。 文献资料 链接到示例

参考文献


Source: https://habr.com/ru/post/zh-CN466179/


All Articles