受控表单组件如何在值、变更事件与空状态之间建立一致契约
简答题中等885 次浏览
参考答案与解析
# 核心结论
受控表单组件必须让当前值、允许的空状态、变更事件载荷和父组件的更新责任形成一致契约。组件渲染使用的值由外部状态决定,用户操作只产生变更意图;父组件可以接受、规范化或拒绝该意图。若同一组件还支持非受控模式,应使用互斥属性联合区分两种模式,避免同时传入 value 与 defaultValue,也避免既没有受控值又缺少非受控初始化策略。
# 底层机制
浏览器输入元素通常提供字符串形式的原始文本。即使界面语义是数字、日期或枚举,输入过程中仍可能出现空字符串、负号、小数点等尚未形成合法领域值的中间状态。如果组件在每次按键后立即强制转换为数字,就可能丢失这些状态,造成光标跳动、无法清空或无法输入小数。因此需
