React Controlled vs Uncontrolled Components

According to the official react docs:

In a controlled component, form data is handled by a React component. The alternative is uncontrolled components, where form data is handled by the DOM itself.

A more intuitive way to explain this concept is that controlled components take their current values through props and handle their changes through callback functions.