介绍
介绍
表单是前端中后台领域常见场景之一。
Drip Form
是针对react
的表单JSON化配置方案,由京东零售ipass前端团队基于自身表单场景的业务沉淀。开发者可通过Drip Form
高效开发可复用的表单。
DripForm不依赖具体的UI库,可以任意选择喜爱的React UI库并扩展对应的组件集, 除此之外,DripForm具备以下特点:
- 语义化:简洁高效的JSON协议有助于开发者理解。
- 校验一体化:依托于
avj
的标准化校验能力,可实现前后端校验一体化。 - 可视化:可视化搭建表单及修改表单
Schema
。 - 可扩展:支持二次开发,可扩展自定义组件集、校验集。
- 自动化:可根据表单数据自动生成初始化表单。
为什么叫Drip Form
Drip:water drop 水滴,是刘慈欣《三体II·黑暗森林》中提到的由三体文明使用强互作用力(SIM)材料所制成的宇宙探测器,因为其外形与水滴相似,所以被人类称之为水滴。1
同时Drip
也是ipaas前端团队procode
、lowcode
项目的代号。
理念
Drip Form
是以数据驱动的表单方案。不同于常见表单开发场景(先开发ui层,后开发数据层)。Drip Form
需要先确定表单的数据类型。
以数据为核心的驱动有几点好处:
- 校验配置化:以JSONSchema2规范为核心的unitedSchema协议。
- 后端数据协议同步:保证前后端数据格式统一,避免二次转换
- 前后端校验一体化:依赖JSON Schema、ajv 插件的能力,保证前后端校验的统一。前后端使用相同的校验能力。
- 业务专注:开发者无需关注表单校验、联动、状态管理层,以上均由
Drip Form
实现。开发者专注业务组件的实现
Drip Form解决的是以下问题:
- 开发成本:表单需要重复开发。
- 联动开发:表单配置项不够灵活化,展示隐藏逻辑,多表单控制逻辑均由开发手写。
- 无法拓展:当使用的样式主题库无法满足业务需求,而使用的表单搭建工具也无法插入自定义主题时,往往只能需求降级。
- 表单校验:前后端需要实现常见的业务校验场景,而这些常见的业务场景会浪费大量开发时间。
- 状态管理:表单中数据的流转和数据转换。
- 性能问题:对于浏览器而言,改动一个表单项的数值,可能会触发整个表单的重新渲染。