What are uncontrolled components in ReactJS?

The uncontrolled components maintain their state, and their data is controlled by DOM. The Refs are used in uncontrolled components to get their current values instead of using props in case of controlled components.
Here, the form data is handled by the DOM itself and it maintains own state and will be updated when the input value changes. To create an uncontrolled component, it is not required to write an event handler for every state update, and you can use a ref to access the value of the form from the DOM.