const element = <h1>Hello, world</h1>;
<div id="root"></div>
이 안에 들어가는 모든 엘리먼트를 React DOM에서 관리
⇒ "루트(root)" DOM 노드라고 부른다.
React로 구현된 애플리케이션은 일반적으로 하나의 루트 DOM 노드가 있다.
React를 기존 앱에 통합하려는 경우 원하는 만큼 많은 수의 독립된 루트 DOM 노드가 있을 수 있다.
React 엘리먼트를 렌더링 하기 위해
1. DOM 엘리먼트를 ReactDOM.createRoot()
에 전달
2. React 엘리먼트를 root.render()
에 전달
const root = ReactDOM.createRoot(document.getElementById('root'));
const element = <h1>Hello, world</h1>;
root.render(element);
지금까지의 내용에서 UI를 업데이트하는 유일한 방법은 새로운 엘리먼트를 생성하고 이를 root.render()
로 전달하는 것
// 예시: 똑딱거리는 시계
const root = ReactDOM.createRoot(
document.getElementById('root')
);
function tick() {
const element = (
<div>
<h1>Hello, world!</h1>
<h2>It is {new Date().toLocaleTimeString()}.</h2>
</div>
);
root.render(element);
}
// setInterval의 콜백을 이용해 초마다 root.render()를 호출
setInterval(tick, 1000);
React DOM은 해당 엘리먼트와 그 자식 엘리먼트를 이전의 엘리먼트와 비교하고 DOM을 원하는 상태로 만드는데 필요한 경우에만 DOM을 업데이트한다.