2021. 6. 29. 09:37ㆍBig Dreamer_Developer/React
Goal : react-dom에 대해 이해하기
리액트라는 것은 순수 자바스크립트이고 이 자바스크립트를 이용해서 컴포넌트들을 만들어 나간다. 그리고 실제로 브라우저는 HTML과 CSS, 그리고 순수 자바스크립트만을 이용하고 이해할 수 있는데, 그래서 리액트 컴포넌트와 같은 것들은 결국 바벨(Babel)을 통해서 순수 자바스크립트로 변환이 된다. 그리고 이렇게 변환된 컴포넌트를 HTML과 연결하는 작업을 해 줘야 하는데, 그것을 할 수 있는 것이 react-dom이다.

react 프로젝트를 실행하고 난 후에 index.html의 초기 코드를 보면 body태그 속에는 div 태그 하나가 달랑 있다. 여기에 id는 root인데, 이 root라는 id를 이용해서 자바스크립트와 연결해 줄 것이다. 또한 그것을 가능하게 하는 것이 react-dom이다. 이제 index.js 라는 파일을 살펴보자.

빨간색 박스가 그려져있는 줄을 해석하자면, react-dom이라는 라이브러리에서 ReactDom 클래스를 가져온다(import)는 뜻을 가진다. 6번째 줄을 보면, 가져온 ReactDom 클래스에 있는 렌더 함수를 이용해서 documnet 페이지에 있는 id가 root라는 요소를 가지고 와서 그 요소에 root 컴포넌트를 연결시켜 주고 있다.
따라서 render 함수가 호출이 되면 index.html에 있는 <div id="root"></div> 부분에 우리의 컴포넌트(<App />부분)가 연결이 되는 것이다. 즉, root라는 id를 가진 요소에 우리의 제일 상위에 있는 App이라는 컴포넌트를 연결하는 것이라고 이해할 수 있다. 그리고 이 App이라는 것은 디렉토리에 있는 app.jsx 파일, 즉 컴포넌트를 의미한다.

앱은 현재 hello :)를 출력한다.

그 hello가 연결되어서 이 hello가 결국 div태그에 들어가는 것을 확인해 볼 수 있다.
이렇게 연결해주는 제일 상위의 컴포넌트를 연결해 주는 것이 바로 react-dom이다. 그래서 항상 index.js 파일에서 연결을 해준다.
그리고 우리가 이제 실제로 컴포넌트를 만들어 나갈 때는 App 컴포넌트에서부터 시작하면 된다.
'Big Dreamer_Developer > React' 카테고리의 다른 글
| Class Components and State (0) | 2021.07.01 |
|---|---|
| Protection with PropTypes(+defaultProps) (0) | 2021.07.01 |
| Dynamic Component Generation (0) | 2021.07.01 |
| Reusable Components with JSX + Props (0) | 2021.06.30 |
| React 전반적 개념 정리 👨💻 (클래스 vs 함수 컴포넌트) (0) | 2021.06.29 |