Skip to main content

4. Rendering Elements

[React] IV. Rendering Elements

1. Element란?

리액트 앱을 구성하는 가장 작은 블록들.

1) React element

React의 virtual DOM Element. DOM element의 가상 표현 DOM element 는 React보다 담고 있는 정보가 많아 더 크고 무겁다. caution. DOM element와 다르다!

2) React element의 형태

JS 객체의 형태로 존재.

{
type: Button, #리액트 컴포넌트의 이름, 혹은 html 태그 이름 'button'
props: {
className: 'hey',
children:{
type:'b',
props: {
children:'Hello, element!'
}
}
}
}

위의 React element는 다음과 같이 렌더링 됨

<button class='hey'>
<b>
Hello, element!
</b>
</button>

sidenote. props는 attribute 같은 것. 그거보다 상위, 복잡한 개념?

2. React Element의 특징

Immutable, 불변성을 가진다.

한번 생성된 element는 변하지 않는다. 생성 후에는 children과 attribute를 바꿀 수 없다. 화면의 내용이 바뀔 필요가 있으면, **(1) 생성 전에 바꾸거나, (2) 새로 만들어야 한다. **

3. element 렌더링

Root DOM Node

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

이 안에 리액트 element들이 렌더링 된다. React DOM tree 의 가장 최상단 element.

const element = <h1>Hello world</h1>;
ReactDOM.render(element,document.getElementById('id'));
// React root DOM 안에 element 라는 JSX를 렌더링하여 넣는다.

내용이 바뀔 때, ReactDOM.render() 함수로 다시 렌더링해서 바꿔치기 한다.