How does a controlled component differ from an uncontrolled one, and when would you choose the latter?
A controlled component stores the field value in React state and re-renders on every keystroke. An uncontrolled component keeps the value in the DOM, and we read it through a ref. I usually use controlled components because validation is easier. But on one project, a form had more than thirty fields and the whole form re-rendered on each keystroke. We switched to uncontrolled fields and read the values only on submission. It became noticeably faster.
The candidate goes beyond a definition: she explains the choice and describes a specific case with a measurable effect. Schema-level validation was not mentioned, but the answer is more than sufficient for a mid-level role.

