본문 바로가기
Javascript/react

React 주요 개념 엘리먼트 렌더링

by Redking

엘리먼트란 React의 가장 작은 단위로 html 태그의 시작 태그와 종료 태그 까지를 엘리먼트라고 합니다..

<a>      // 시작 태그
</a>     // 종료 태그
<br/>    // 빈 태그

<a href="#">a tag</a> // 엘리먼트
<br/>                 // 엘리먼트

<br/> 같은 경우는 빈 요소(empty element)라고 하며 내용이 없는 경우를 말한다. ex) <img/>, <input/>

 

브라우저 DOM 엘리먼트와 달리 React 엘리먼트는 일반 객체이며(plain object) 쉽게 생성할 수 있습니다.

React DOM은 React 엘리먼트와 일치하도록 DOM을 업데이트합니다.


DOM에 엘리먼트 렌더링

보편적으로 react 엘리먼트를 랜더링 할 때 ReactDOM으로 관리하며 이것을 루트 DOM 노드라고 합니다..

React로 구현된 애플리케이션은 일반적으로 하나의 루트 DOM 노드가 있습니다. 

 

React 엘리먼트루트 DOM 노드에 랜더링하려면 둘 다 ReactDOM에 전달하면 됩니다.

const elem = <a href="#">a tag</a>;  // react 엘리먼트
ReactDOM.render(elem, document.getElementById('root')  // ReactDOM에 elem과 루트 DOM 노드를 전달

 

렌더링 된 엘리먼트 업데이트

React 엘리먼트는 불변 객체입니다. 엘리먼트를 생성한 이후에는 해당 엘리먼트의 자식이나 속성을 변경할 수 없습니다.

그러나 변경할 수 있는 방법이 아예 없는 것은 아닙니다. UI를 변경할 수 있는 유일한 방법은 변경하고 싶은 엘리먼트를 다시 생성하고 ReactDOM으로 전달하는 것입니다.

function click() {
    let clickElement = <div>클릭 완료</div>  // 변경할 react 엘리먼트 생성
    ReactDOM.render(clickElement, document.getElementById('root')  // ReactDOM에 변경할 elem과 루트 DOM 노드를 전달
}

const elem = <button onClick={() => click()}>a tag</button>;  // react 엘리먼트
ReactDOM.render(elem, document.getElementById('root')  // ReactDOM에 elem과 루트 DOM 노드를 전달

 

'Javascript > react' 카테고리의 다른 글

React 주요 개념 Event 처리  (0) 2021.03.30
React 주요 개념 Lifecycle of Component  (0) 2021.03.29
React 주요 개념 State  (0) 2021.03.29
React 주요 개념 Components and props  (0) 2021.03.29
React 주요 개념 JSX  (0) 2021.03.24

댓글