React "controlled components" can be detremental to the overall user experience when used improperly. For design systems work, we've elected to ensure our components are uncontrolled to reduce unnecessary rerenders and avoid the potential for UI jank. But what are controlled components?
React's documentation (https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components) provides a definition of controlled components...
... a component is “controlled” when the important information in it is driven by props rather than its own local state.
While I appreciate the shortness and accuracy of the definition, I find it unhelpful in practical everyday work.
In practice, controlled components are components that use a combination of props and state to manage updates to the component. React does a really good job of managing rerendering of components by monitoring state and prop updates. That's particularily true when state flows unidirectionally. However controlled components ca