Referencing Values with Refs
Lifting state up in react means moving data from a child component to some parent component either to use it there or pass it some other child component.
It is common to call a component with some local state “uncontrolled”.
In contrast, you might say a component is “controlled” when the important information in it is driven by props rather than its own local state. This lets the parent component fully specify its behavior.
When writing a component, consider which information in it should be controlled (via props), and which information should be uncontrolled (via state). But you can always change your mind and refactor later.