Controlled, for most cases. Controlled components keep React as the single source of truth and make the UI predictable, which is the React philosophy. Use uncontrolled only for simple cases where control is unnecessary.
Which does React recommend, controlled or uncontrolled?
More FAQs in Controlled vs Uncontrolled Components in React: When to Use Each
A controlled input has its value driven by React state, so React is the single source of truth. An uncontrolled input manages its own state in the DOM, and you read its value with a ref when needed.
For almost everything: forms that need validation, inputs that affect other UI, search boxes that filter live, and any case where you need the value as the user types. Controlled keeps React as the single source of truth.
For simple one-time reads, like a single submit form where you only need the value on submit, or for integrating with non-React code that needs direct DOM access. Uncontrolled is simpler and less code for these cases.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.