예제 코드 : https://github.com/MoonHighway/learning-react
- React : 뷰를 만들기 위한 라이브러리
- ReactDOM : UI를 실제로 브라우저에 렌더링할 때 사용하는 라이브러리
- 가상 DOM은 리액트 엘리먼트로 이뤄짐
- 리액트 엘리먼트 : 자바스크립트 객체
- 가상 DOM를 직접 다루는게 훨씬 빠름
- 우리가 가상 DOM 을 변경 -> 리액트가 DOM API를 통해 변경사항을 효율적으로 렌더링 해줌
- 브라우저의 DOM : DOM 엘리먼트로 이뤄짐
- 리액트 DOM : 리액트 엘리먼트로 이뤄짐
- 리액트 엘리먼트 : 실제 DOM 엘리먼트가 어떻게 생겨야하는지 기술함
React.createElement("h1", {id : "recipe-0"}, "연어")
↓
<h1 id="recipe-0">연어<h1>
- props : DOM 엘리먼트를 만들기 위해 필요한 데이터, 자식 엘리먼트들을 표현함
- 리액트 엘리먼트를 브라우저에 렌더링하는데 필요한 모든 도구가 들어있음
- ReactDOM.render : 리액트 엘리먼트 + 모든 자식 엘리먼트 렌더링하기 위함