跳到主要内容

介绍

介绍

表单是前端中后台领域常见场景之一。

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前端团队procodelowcode项目的代号。

理念

Drip Form 是以数据驱动的表单方案。不同于常见表单开发场景(先开发ui层,后开发数据层)。Drip Form需要先确定表单的数据类型。

以数据为核心的驱动有几点好处:

  • 校验配置化:以JSONSchema2规范为核心的unitedSchema协议。
  • 后端数据协议同步:保证前后端数据格式统一,避免二次转换
  • 前后端校验一体化:依赖JSON Schema、ajv 插件的能力,保证前后端校验的统一。前后端使用相同的校验能力。
  • 业务专注:开发者无需关注表单校验、联动、状态管理层,以上均由Drip Form实现。开发者专注业务组件的实现

Drip Form解决的是以下问题:

  • 开发成本:表单需要重复开发。
  • 联动开发:表单配置项不够灵活化,展示隐藏逻辑,多表单控制逻辑均由开发手写。
  • 无法拓展:当使用的样式主题库无法满足业务需求,而使用的表单搭建工具也无法插入自定义主题时,往往只能需求降级。
  • 表单校验:前后端需要实现常见的业务校验场景,而这些常见的业务场景会浪费大量开发时间。
  • 状态管理:表单中数据的流转和数据转换。
  • 性能问题:对于浏览器而言,改动一个表单项的数值,可能会触发整个表单的重新渲染。