用途:该技能用于在 Formily 中实现复杂表单场景,主要面向动态表单、条件字段、嵌套表单、异步校验与性能优化等进阶模式,代码以 TypeScript 编写。资料中说明当用户提出“实现动态表单”“formily 复杂表单”“formily 条件字段”“formily 嵌套表单”等需求时使用。
主要能力:动态表单方面,可用 createForm 与 onFieldChange 等 effect 根据其他字段值控制字段可见性与选项(如用户类型、国家联动城市);可根据配置生成动态 schema(x-component、x-validator 等)。数组字段方面,可用 form.pushValues、form.removeValues 及 isArrayField 的 move 等方法增删与排序,并支持嵌套数组对象。异步校验方面,提供邮箱唯一性、用户名防抖校验及密码强度、确认密码、日期区间等较复杂规则示例。嵌套表单方面,包含多步骤表单(按步骤校验与切换)及嵌套对象更新(setFieldState、setValues)。性能优化方面,给出 memo 与 observer 的字段组件、react-window 虚拟化大表单、form.batch 批量更新与按需渲染等示例。此外还包含自定义地址字段、带进度的文件上传等模式,但不提供安装命令与配置细节。
使用方式:依托 @formily/core、@formily/react 等模块,通过 createForm 的 effects 中 onFieldChange、onFieldReact 及 form.setFieldState、form.setValues 等 API 实现,示例可直接参考所给代码片段。
适用场景:需要动态联动、条件展示、数组编辑、远程校验或大数据量表单的性能敏感项目。
限制:资料未提供安装命令、依赖版本、收费与价格、支持平台及具体使用步骤;部分代码示例存在重复或截断。