表单组件支持几个受用户交互影响的属性:
value,用于<input>,<textarea> 组件。
checked,用于类型为checkbox或者radio的 <input>组件。
selected,用于<option>组件。
设置了 value 的 <input> 是一个受限组件。 对于受限的 <input>,渲染出来的 HTML 元素始终保持 value 属性的值。
一个可控组件并不保持自己的原始状态;组件的呈现完全基于属性。
没有设置value(或者设为null) 的<input>组件是一个不可控组件。这样的话,组件中的数据和state中的数据并不对应,可以说,组件的数据不可控。
组件可控的优点:
符合React的数据流,单向数据流,从state流向render输出的结果。
数据存贮在state中,便于使用。
便于对数据进行处理
自定义表单组件的原因:
内因:表单本身具备特殊性:样式统一、信息内聚、行为固定
外因:本质上是组件的嵌套,组织和管理组件的一种方式