Files
form-render/docs/why.md
2019-12-01 17:20:40 +08:00

25 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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