mirror of
https://github.com/zhigang1992/form-render.git
synced 2026-06-12 08:48:15 +08:00
2.1 KiB
2.1 KiB
为什么造轮子
为什么也用 JSON Schema
- 因为这是现有的一个标准规范,可以用它来描述 JSON 属性结构,所以其实现阶段来描述表单结构信息几乎都是这个,是一种关系表示协议,很像我们平时用 JSON 来表示我们的接口数据一样,后续有计划利用 JSON Schema 做其他场景的渲染引擎
- FormRender 更多的是内部的 filed 处理和类型嵌套、无限遍历、支持跨组件体系这一块才是比较麻烦地方
不用 react-jsonschema-form 的原因?
-
UI 选择:它以 Bootstrap 这一套来做的 UI,目前阿里这边大部分中后台依托于 fusion 或者 antd ,定制 antd 样式开始我也以为很好弄,其实是很麻烦的,Bootstrap 引入其实必要性不大,而且 Mozilla 官方 issue 表示只会考虑这个
-
配置复杂:从 0 使用到配置出来符合业务方要求所需要的时间会占了你大部分时间,包括中文处理、如何融入到中后台脚手架里面(umi 这种,样式管理处理融入不进去)、组件处理(定制化的组件展示很原始,如时间日历选择、颜色选择)等地方
-
体验提升方面:有些场景比如图片预览/上传、列表拖拽排序、正则校验、嵌套展示方面这边场景很需要,但...
出于什么点来做的 FormRender ?
-
当时还尝试了不少方案,几乎都试了一个遍,包括阿里内部的一些解决方案,都比较难达到现有的效果和满足 JSON Schema 规范协议
-
所以就从 0 开始和好友 @mankaiviky 这边一起来弄了,从代码处理上,底层直接就用 js 来弄的原始的 html 表单( 无 widget 的时候),然后上层可以无缝使用 Fusion、Antd 组件 Widget
-
更多向业务现有风格靠,让使用者拿过来 2 分钟安装配置好就可以用,配置尽量少的方式来弄
-
归纳起来就是:自己场景有很痛的点 -> 然而没有找到已有好实现 -> 自己弄和自己用-> 还可以支持到阿里内部很多部门使用 -> 整理了下文档官网开源出来,让更多人用上