React 컴포넌트는 아래의 흐름을 따라 렌더링된다.
수행 주체: react
컴포넌트 렌더링이 일어나는 데에는 두 가지 이유가 있다.
위와 같은 이유로 컴포넌트의 상태가 업데이트될 때, 렌더링 대기열(Rendering queues)에 추가된다.
수행 주체: react
Render Trigger 후 React는 컴포넌트를 호출하여 화면에 표시할 내용을 파악한다. "렌더링(Rendering)"은 React에서 컴포넌트를 호출하는 것을 말한다.
이 때, React는 render() 함수를 실행하여 새로운 가상 DOM(Virtual DOM)을 생성(JSX를 React 요소(React Element)로 변환)하고, 이전 가상 DOM과 새로운 가상 DOM을 비교(Diffing)해서 변경된 요소만 찾아 업데이트할 작업을 정리한다.
수행 주체: react-dom
컴포넌트를 렌더링(호출)한 후 React는 (Real) DOM을 수정한다.
리렌더링 시, React는 필요한 최소한의 작업(렌더링 과정에서 계산된 것)을 적용하여 실제 DOM이 최신 렌더링 출력과 일치하도록 한다.
수행 주체: Browser
Browser Rendering이라고 하지만 (React 공식 문서에서) 혼동을 피하고자 "페인팅(Painting)"이라고 부른다.
브라우저가 변경된 DOM을 바탕으로 레이아웃 계산 (Reflow) 및 페인팅(Painting) 작업 수행한다.
참고: 렌더링 그리고 커밋 - React
https://ko.react.dev/learn/render-and-commit?utm_source=chatgpt.com