用途:@formkit/core 是 FormKit 的框架无关核心。每个输入、分组、列表和表单都是节点树中的一个 FormKitNode;Vue/React 适配器负责渲染,输入类型、校验和 i18n 位于其他包。本技能仅适用于导入 @formkit/core 的代码。当前为 2.1.2 版,ESM 为主并带 CJS 回退,唯一依赖 @formkit/utils。
主要能力:运行时导出涵盖节点创建、值操作、事件监听、钩子中间件、插件、消息 store 与 ledger、注册表、错误设置、重置与提交、schema 表达式编译等。分组节点值为按子节点名索引的对象,列表节点为按索引索引的数组。
用法要点:用 createNode 建树,node.at('email') 取子节点;用 await node.input(value) 提交值,勿直接赋值 node.value;await node.settled 等待子树提交完成;用 node.on('commit.deep', cb) 监听事件并用返回的 receipt 调 off() 清理;用 node.hook.commit((v, next) => next(...)) 注册中间件;插件会被后代继承且每节点执行一次;用 getNode、watchRegistry、stopWatch 按 id 查找;用 setErrors、clearErrors、reset、submitForm 管理表单状态;用 compile 编译 schema 条件表达式。
限制与注意:配置应通过 node.props 读取;消息不可变,需用 store.set() 替换;分组需对象值、列表需数组值,否则报 107/108 错误;node.walk() 和 node.root 开销较大,避免热路径频繁调用;避免同名兄弟节点,必要时设置 mergeStrategy 为 synced;FORMKIT_VERSION 是构建期占位符,不应据此分支。适用于 @formkit/core 2.1.2,2.x 相对 2.0.0 主要是修复。