表单组件支持几个受用户交互影响的属性:

  • value,用于<input>,<textarea> 组件。

  • checked,用于类型为checkbox或者radio的 <input>组件。

  • selected,用于<option>组件。

设置了 value 的 <input> 是一个受限组件。 对于受限的 <input>,渲染出来的 HTML 元素始终保持 value 属性的值。

一个可控组件并不保持自己的原始状态;组件的呈现完全基于属性。

没有设置value(或者设为null) 的<input>组件是一个不可控组件。这样的话,组件中的数据和state中的数据并不对应,可以说,组件的数据不可控。

组件可控的优点:

  • 符合React的数据流,单向数据流,从state流向render输出的结果。

  • 数据存贮在state中,便于使用。

  • 便于对数据进行处理

自定义表单组件的原因:

  • 内因:表单本身具备特殊性:样式统一、信息内聚、行为固定

  • 外因:本质上是组件的嵌套,组织和管理组件的一种方式


littlelightss
406 声望14 粉丝