只要包含回调,你的表单就不具备可移植性
来源:dev.to — 2026-08-24
📋 概述
作者指出,大多数表单库只擅长管理应用内的表单状态,一旦表单需要跨越边界(结构来自后端、由可视化构建器生成、多应用共同渲染、服务端独立校验浏览器同一套条件规则),它就从一个组件状态变成了一份契约,而大多数表单抽象无法跨越这道边界。回调无法以 JSON 穿过 API、Java 服务无法执行它、可视化编辑器无法可靠检查它。文章警告三种危险的捷径:把回调序列化成源码字符串、发明紧凑字符串 DSL、或在每个客户端里复制行为——最终都会演变成藏在字符串里的编程语言或危险信任边界。
🔑 核心要点
- 表单需要跨边界存在时,就从组件状态变成契约,而回调让大多数抽象无法跨越。
- 回调无法以 JSON 穿越 API、其他运行时无法执行、可视化编辑器无法检查其含义。
- 危险的捷径:序列化回调为源码、紧凑字符串 DSL、每端复制行为——都难以为继。
- 表达式字符串不被静态绑定到表单模型,重命名字段不会同步更新,非法路径运行期才发现。
- 紧凑 DSL 最终会成长为藏在字符串里的编程语言,TypeScript 也只能看到字符串。
💡 金句
一份表单配置,如果部分含义仍活在可执行回调里,就算不上一份可移植的表单契约。
👍 0
👎 0
← 返回 dev.to 首页