DOM 직접 조작
이벤트마다 필요한 DOM 노드를 찾아 직접 수정하면 화면 상태와 데이터 상태가 쉽게 어긋난다.
imperativeReact는 DOM을 직접 고치는 방식에서 상태를 바꾸면 UI가 다시 계산되는 선언형 컴포넌트 모델로 전환한 흐름 위에 있다.
이벤트마다 필요한 DOM 노드를 찾아 직접 수정하면 화면 상태와 데이터 상태가 쉽게 어긋난다.
imperativeReact는 state와 props를 입력으로 UI를 다시 계산해 변경점을 반영한다.
declarative화면을 재사용 가능한 컴포넌트로 나누어 데이터 흐름과 UI 책임을 묶는다.
component라우팅, 상태 관리, 빌드 도구가 붙으며 SPA 개발의 표준 패턴이 형성됐다.
ecosystemold: click -> find DOM -> mutate node
React: click -> setState -> render UI from state