An uncontrolled component is similar to a traditional HTML form input element. You can get the value of the input by accessing the reference to the input.
On the other hand, we have a controlled component. Rather than accessing the value of the input through the reference of the element, we can store the value in React state.