리액트의 state가 아닌, 브라우저 DOM 자체가 입력값을 들고 있다.
데이터의 주인은 브라우저(DOM)
동작: 사용자가 글자를 칠 때마다 리액트한테 알려주지 않음. 브라우저 DOM 자체( HTML < input > )이 조용히 자기 값을 업데이트함. 리액트는 ref를 통해 나중에 값을 가져옴
장점: 키 입력마다 컴포넌트가 다시 그려지지 않아서 성능이 매우 가볍다.
(리렌더링 발생하지 않음)
RHF의 방식: RHF는 기본적으로 이 Uncontrolled 방식을 사용. register가 이 입력창을 감시만 하다가, 나중에 제출할 때 한꺼번에 값을 가져옴.
입력값 하나하나가 리액트의 state와 동기화
데이터의 주인은 리액트(State)
동작: 사용자가 'A' 하나만 쳐도 onChange가 실행되고, state가 바뀌며, 그 결과로 컴포넌트 전체가 다시 그려짐.
(리렌더링 발생)
장점: 입력값에 따라 실시간으로 화면을 바꿀 때(예: 글자 수 카운팅, 실시간 검색) 직관적이다.
단점: 입력할 때마다 리액트가 일을 해야 하므로, 폼이 복잡해지면 성능 부하가 생김.