상세 컨텐츠

본문 제목

Rendering Elements - React

Programming/React

by 쌩우 2019. 6. 11. 14:34

본문

Element란?

Element는 React 앱의 가장 작은 단위이다.
Element는 화면에 표시할 내용을 기술한다.
Component와 혼동하여서는 안 된다.

Rendering Elements in DOM
HTML 파일 내부에 <div>가 있다고 가정해보자.

<div id="root"></div>

이 안에 들어가는 모든 element를 React DOM에서 관리하므로,
이것을 root DOM node 라고 부른다.
React로 구현된 앱은 일반적으로 하나의 root DOM node가 있다.

React element를 root DOM node에 render하려면 둘 다 ReactDOM.render() 에 전달해주면 된다.

const element = <h1>Hello, world</h1>;        //render 하려고 하는 element
ReactDOM.render(element, document.getElementById('root'));   //root DOM node에 element render 하기

Update redered element
React element는 불변객체이다.
element를 생성한 이 후에는 해당 element의 자식이나 속성을 변경할 수 없다.
element는 영화의 한 프레임처럼 특정 시점의 UI를 보여준다.
지금까지의 내용을 바탕으로 하면, UI를 업데이트 하는 유일한 방법은 새로운 element를 생성하고,
이를 ReactDOM.render()로 전달하는 것이다.

똑딱거리는 시계를 예시로 보자.

function tick() {
    const element = (
        <div>
            <h1>Hello, world!</h1>
            <h2>It is {new Date().toLocaleTimeString()}.</h2>
           </div>
    );
    ReactDOM.render(element, document.getElementById('root'));
}

setInterval(tick, 1000)        //매초마다 ReactDOM.render 호출. 실제로는 대부분의 React 앱이 ReactDOM.render()를 한번만 호출한다.

변경된 부분만 업데이트하기
React DOM은 해당 element와 그것의 자식 element를 이전의 것과 비교하고,
DOM을 원하는 상태로 만드는 데 필요한 경우에만 DOM을 업데이트 한다.
매 초 마다 전체 UI를 다시 그리도록 만들었지만 React DOM은 내용이 변경된 텍스트 노드만 업데이트하였다.
이런 접근법은 시간의 변화에 따라 UI가 어떻게 변화할지 고민하는 것 보다 더 많은 수의 버그를 없앨 수 있다.

'Programming > React' 카테고리의 다른 글

recast.ly - React  (0) 2019.06.14
checkpoints in react  (0) 2019.06.14
Components and Props - React  (0) 2019.06.11
JSX - React  (0) 2019.06.11
React를 배우는 목적  (0) 2019.06.11

관련글 더보기

댓글 영역