An uncontrolled input gets its initial value from defaultValue; the DOM manages later edits. React need not update state on every keystroke.
The demo changes the field first and updates the result only on submit. A controlled input is simpler when other UI must react while typing.
When to use
Use it for simple submit-time forms or integration with DOM-driven code.