한마디로 제어 컴포넌트와 비제어 컴포넌트의 차이를 말하자면 State로 input 값을 관리(변경)할 수 있는가의 여부 차이이다. 제어 컴포넌트는 관리를 할 수 있고, 비제어 컴포넌트는 관리를 할 수 없다.
리액트 개념에 의해 관리되는 것이 제어 컴포넌트이고 그렇지 않은 것이 비제어 컴포넌트이다.
두개의 컴포넌트의 각각의 특징이 명확하므로 상황에 따라 적절한 컴포넌트를 사용하면 좋을 것이라고 생각한다. 리엑트 공식문서에 의하면 대부분 경우에 폼을 구현하는데 제어 컴포넌트를 사용하는 것을 추천한다.
Controlled Component (제어 컴포넌트)
제어 컴포넌트에서 폼 데이터는 React컴포넌트에서 다루어진다.
제어 컴포넌트는 컴포넌트의 상태나 속성(props)으로 주어진 값을 활용하는 컴포넌트입니다.