본문 바로가기
Project/REACT

6 - 리액트 동작 원리

by Elfen Lied 2020. 12. 2.
반응형

앞선 코드에서 App.js 에서 쓴 Hello!!! 코드가

어떻게 public 폴더에 있는 index.html에

<div id="root"></div> 중간에 나올수 있는가.

 

1. index.js 살펴보기

* src에 있는 index.js를 열어본다.

ReactDOM.render(<App />, document.getElementById('root'));

코드를 해석한다면, 뒤에서 부터 id가 'root'인 엘리먼트에 <App /> 컴포넌트를 ReactDOM.render에 그린다

라고 보면 된다.

 

*public에 있는 index.html 수정해보기

수정전 코드
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
    
    
수정후 코드
	<noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="potato"></div>

id가 root 이었던걸 potato로 바꾸면 앱이 실행되지 않는다.

cmd에서 npm start로 리액트 다시 실행.

인터넷창에 이러한 오류가 뜸.

이유는 src에 있는 index.js 에 ReactDOM.render(...)에서 document.getElementById('root')라는 아이디가

'root인 엘리먼트를 찾는데 public에 있는 index.html에 아이디가 'root'인 엘리먼트가 없기때문이다.
(potato로 바꿨기때문)

 

 

*src에 있는 index.js 수정해서 오류 해결

코드 수정 전
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));


코드 수정 후
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('potato'));

 

이제 정상 작동할것이다.

 

확인을 했으면 다시 수정한것을 되돌려준다.

potato를 root으로 다시 수정해주기 ( index.html과 index.js 둘다 수정)

반응형

'Project > REACT' 카테고리의 다른 글

8 - 리액트 기초 개념: props  (0) 2020.12.08
7 - 리액트 기초 개념: 컴포넌트, JSX  (0) 2020.12.08
5 - 폴더 정리 및 수정  (0) 2020.12.02
4. 깃허브에 업로드  (0) 2020.12.02
3 - 리액트 앱 실행  (0) 2020.12.02

댓글