일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- dynamic pages
- RECOIL
- sever components
- client components
- 3진법 뒤집기
- unstable_nostore
- @tailwind components
- commit phase
- sever action
- 리액트
- image component
- revalidatepath
- 프로그래머스
- 자바스크립트
- @tailwind utility
- @tailwind base
- supabase realtime
- createbrowserrouter
- server components
- @tailwind
- CSS
- revalidatetag
- js
- SSR
- 클로저
- 타입스크립트
- iron-session
- interceptor routes
- static pages
- render phase
- Today
- Total
개발하는 너구리
Render Phase, Commit Phase 본문
렌더 단계(Render Phase)
컴포넌트 렌더링: 렌더 단계는 컴포넌트 트리를 순회하면서 해당 컴포넌트의 UI를 생성합니다. 이때 render() 메서드 또는 함수형 컴포넌트의 반환값을 기반으로 UI를 생성합니다.
가상 DOM 업데이트: 렌더 단계에서는 생성된 UI를 기반으로 가상 DOM을 업데이트합니다. 가상 DOM은 실제 DOM에 대한 가상의 복제품으로, 실제 DOM을 직접 조작하는 대신 가상 DOM을 조작하여 성능을 향상시킵니다.
컴포넌트 업데이트 결정: 리액트는 이전 가상 DOM과 현재 가상 DOM을 비교하여 변경된 부분을 식별합니다. 이때 렌더링 결과가 이전 결과와 동일하면 실제 DOM에는 변경 사항이 반영되지 않습니다.
커밋 단계(Commit Phase)
실제 DOM 갱신: 커밋 단계에서는 변경된 부분이 실제 DOM에 반영됩니다. 이때 변경된 부분만을 선택적으로 갱신하여 불필요한 리렌더링을 방지하고 성능을 최적화합니다.
사이드 이펙트 처리: 커밋 단계에서는 사이드 이펙트(e.g., 네트워크 요청, 상태 변경 등)를 처리합니다. 이는 useEffect 훅이나 생명주기 메서드에서 등록된 작업들을 실행하여 컴포넌트의 동작을 완성합니다.
렌더링 결과 확인: 커밋 단계에서는 변경된 UI가 사용자에게 표시되기 전에 최종적으로 확인됩니다. 변경된 UI가 실제로 사용자에게 표시되는 것을 확인하고 완료된 렌더링 프로세스를 마무리합니다.
이처럼 렌더 단계와 커밋 단계는 리액트의 내부 알고리즘에서 상호작용하여 UI 업데이트를 효율적으로 처리합니다. 개발자는 이 과정을 명시적으로 제어할 필요가 없으며, 리액트가 자동으로 최적화된 방식으로 렌더링과 커밋을 수행합니다.
'TIL' 카테고리의 다른 글
SSR, React Server Components(RSC), Client Components (0) | 2024.06.12 |
---|---|
createBrowserRouter, loader, action (0) | 2024.06.11 |
Vitual DOM, React Fiber (0) | 2024.06.04 |
rendering (0) | 2024.05.31 |
useRef, useImperativeHandle, createPortal (0) | 2024.05.30 |