Start here. This is the direct spoken answer to practice first.
Why this question matters
Forms are where React state becomes user-visible. Controlled and uncontrolled inputs are a common way to test whether a candidate understands state ownership.
A controlled input gets its value from React state and updates that state through onChange. React is the source of truth. An uncontrolled input keeps its value in the DOM, and React reads it later through a ref or form submission. I would use controlled inputs when the UI needs live validation, dependent fields, formatting, or instant derived state. Uncontrolled inputs can be fine for simple forms or library-managed forms.