美文网首页
表单,受控组件和非受控组件的选择

表单,受控组件和非受控组件的选择

作者: skoll | 来源:发表于2020-06-07 16:00 被阅读0次

不受控

1 .传统的HTML表单输入一样,使用ref获取他的值
2 .在onChange事件中获取
3 .

受控制

<input value={someValue} onChange={handleChange} />

1 .表单的值完全由state决定,修改也是在回调里面修改state
2 .优势

*   就地反馈,例如验证
*   除非所有字段都有有效数据,否则禁用按钮
*   强制使用特定的输入格式,例如信用卡号

3 .

<input type="text" />   value="string"  onChange    event.target.value
<input type="checkbox" />   checked={boolean}   onChange    event.target.checked
<input type="radio" />  checked={boolean}   onChange    event.target.checked
<textarea />    value="string"  onChange    event.target.value
<select />  value="option value"    onChange    event.target.value

对比如下

| 特征 | 不受控制 | 受控 |
| --- | --- | --- |
| 一次性取值(例如,提交时) | ✅ | ✅ |
| [提交时验证](https://goshakkk.name/submit-time-validation-react/) | ✅ | ✅ |
| [即时现场验证](https://goshakkk.name/instant-form-fields-validation-react/) | ❌ | ✅ |
| [有条件地禁用提交按钮](https://goshakkk.name/form-recipe-disable-submit-button-react/) | ❌ | ✅ |
| 强制输入格式 | ❌ | ✅ |
| 一个数据的多个输入 | ❌ | ✅ |
| [动态输入](https://goshakkk.name/array-form-inputs/) | ❌ | ✅ |

相关文章

网友评论

      本文标题:表单,受控组件和非受控组件的选择

      本文链接:https://www.haomeiwen.com/subject/qmuctktx.html