왜 하필 React를 쓰나요?

렌더링은 비싸다

React를 사용하면 직접적인 DOM 조작을 피할 수 있습니다. 잦은 DOM 조작을 하게 되면 매 조작마다 불필요하게 reflow repaint가 일어날 수 있습니다. 하지만 React의 엘리먼트 트리 reconciliation은 단순 연산이기 때문에 렌더링 연산보다 값싸죠. 만일 잦은 DOM조작에 대한 배치 업데이트를 보장할 수 있다면 virtualDOM을 도입하는 비용보다 이로써 얻는 이득이 클 것입니다. 하지만 정적인 페이지에서는 오히려 불필요한 비용을 지불하겠죠. React는 페이스북과 같은 웹 애플리케이션에서 이득이 있습니다.

선언적인 UI 개발

React에서 모든 UI 컴포넌트는 순수 함수입니다. 불변적인(Immutable) 데이터는 한 방향으로 흐르며, 사이드 이팩트가 없어 각 컴포넌트는 상태에 대하여 단 한가지의 결과를 지닙니다. 만일 100 여개의 컴포넌트를 관리해야 한다면 실제로 렌더링될 화면을 예측하는 데 큰 장점이 됩니다.

JSX는 자바스크립트입니다!

JSX는 단순히 선언적인 UI 개발을 하도록 도와주는 예쁜 문법일 뿐 아니라, 아주 똑똑하게도 React.createElement( ... ) 로 변환되는 자바스크립트입니다. 이게 왜 장점이 되는가 하면, IDE에서 제공하는 여러 기능들을 JSX내에서도 활용할 수 있습니다. 자바스크립트의 심볼이 추론될 뿐만 아니라, 타입스크립트의 타입 검사까지 이루어집니다.