Sam and Ryan discuss controlled and uncontrolled components in React. They talk about how uncontrolled components can be thought of as components that manage their own internal state, why you should model your complex React components after the simpler APIs of native HTML elements like inputs, why you shouldn't try to make components that are both controlled and uncontrolled, and why making a new component boundary is sometimes all you need to make your custom components behave more predictably.
Timestamps:
- 0:00 - Intro
- 1:41 - What are controlled and uncontrolled components?
- 6:11 - How to change a component from uncontrolled to controlled
- 8:48 - How do you decide when to use a controlled or uncontrolled component?
- 12:00 - Sortable table example and a single source of truth
- 15:27 - Is it always either controlled or uncontrolled?
- 21:09 - Color picker example and not exposing internal state
- 28:46 - Sortable list example with Framer Motion
- 39:45 - Component boundaries and wearing two hats: the library author vs. library consumer
- 41:43 - How do you know if you are using the wrong approach?
Links: