React 受控/不受控组件
受控制的组件
受控制的组件绑定到一个值,并且其更改将通过使用基于事件的回调在代码中进行处理。在这里,输入表单元素是由react本身而不是DOM处理的。在这种情况下,可变状态将保留在state属性中,并且仅使用setState()方法进行更新。
受控组件具有控制在每个 onChange 上传递给它们的数据的功能。 >事件发生。然后,将这些数据保存到状态并使用setState()方法进行更新。它使组件可以更好地控制表单元素和数据。
不受控制的组件
它类似于传统的HTML表单输入。在此,表单数据由DOM本身处理。它保持自己的状态,并在输入值更改时进行更新。要编写不受控制的组件,不需要为每个状态更新编写事件处理程序,并且您可以使用ref来从DOM访问表单的值。
差异受控组件和非受控组件之间的表格
受控 |
不受控制 |
它不保持其内部状态。 |
它保持其内部状态。 |
在这里,数据由父组件控制。 |
这里,数据由DOM本身控制。 |
它接受其当前值作为Props。 |
它使用ref作为其当前值。 |
它允许验证控制。 |
它不允许验证控制。 |
它可以更好地控制表单元素和数据。 |
它对表单元素和数据的控制有限。 |