核心动机

核心动机#

每个表单项在初始化或者交互的时候,总会或多或少的存在和远程的数据关联、页面内存中的数据关联、逻辑联动、校验联动等等业务逻辑。

rdx-form 致力于降低书写这部分业务逻辑代码的成本。

表单项的状态管理#

rdx-form 通过对表单状态的抽象,将表单项的状态拆分为 value(表单的值)、valueIntercept(表单的值拦截器)、status(表单的状态)、Compute(表单的衍生状态)、modify(表单是否编辑)、validate(表单校验)

  • value(表单的值) 主要用于存储表单的输入的值。
  • valueIntercept(表单的值拦截器) 主要用于拦截值的修改状态,当值修改了,会将表单置为编辑状态,这时候校验才会生效。
  • status(表单的状态) 主要用于维护 visible(是否可见)、disabled(是否可用)、preview(是否预览态)、require(是否必选)、componentProps(透传给表单的组件属性)
  • compute(表单的衍生状态) 衍生状态是rdx-form最大的亮点,由Compute产生的状态,是表单项最终消费的配置,compute既支持同步,也支持异步,通过这个衍生状态,可以将表单的状态都内聚到表单项上, 同时衍生状态还支持依赖的动态收集,以此保障关联状态变更的时候,该方法都将自动执行。
  • modify(表单是否编辑)
  • validate(表单校验) 衍生的校验状态,和表单的衍生状态非常相似,不同点事表单校验状态是所有状态的最后一环,当表单的编辑状态或者表单衍生状态发生改变的时候,表单校验方法都将自动执行。