React 受控 vs. 非受控组件

2024 年 8 月 28 日 | 阅读 2 分钟

受控组件

受控组件绑定到某个值,并且其更改将通过使用基于事件的回调函数在代码中进行处理。在这里,输入表单元素由 react 本身处理,而不是 DOM。在这种情况下,可变状态保留在 state 属性中,并且仅通过 setState() 方法进行更新。

受控组件具有在每次发生 onChange 事件时控制传入数据的函数。然后,将此数据保存到状态并使用 setState() 方法进行更新。这使得组件可以更好地控制表单元素和数据。

非受控组件

它类似于传统的 HTML 表单输入。在这里,表单数据由 DOM 本身处理。它维护自己的状态,并在输入值更改时进行更新。要编写非受控组件,无需为每次状态更新编写事件处理程序,您可以使用 ref 从 DOM 访问表单的值。

受控组件和非受控组件之间的区别表

序号受控非受控
1.它不维护其内部状态。它维护其内部状态。
2.在这里,数据由父组件控制。在这里,数据由 DOM 本身控制。
3.它接受其当前值作为 prop。它使用 ref 来获取当前值。
4.它允许验证控制。它不允许验证控制。
5.它更好地控制表单元素和数据。它对表单元素和数据的控制有限。

下一主题React 事件