Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 아이콘사용법
- maxwidth
- legacy-peer
- 웹아이콘
- 플러그인
- node 오류
- 이미지반응형
- react npm install
- XEIcon
- 그누보드반응형
- npm start
- minwidth
- Git clone
- node설치
- vscode git clone
- 의존성문제
- slickslider
- googleicon
- npm install 문제
- 글자들여쓰기
- MediaQuery
- 정적객체
- 단어단위로떨어지기
- owlcarousel
- git lab clone
- npm install
- package.json
- 동적객체
- window 정책변경
- fontawesome
Archives
- Today
- Total
어쩌다 알게 된 ƪ(•̃͡•̃͡ ƪ
🟦[React] React의 화면 업데이트 3단계 본문
728x90
✅ React의 화면 업데이트 3단계
=> 바뀐 부분만 화면 업데이트가 됨
ex) useState가 하나 있는데 이걸 사용하는 버튼이 있다고 치면
<button>여기는 console 1</button> -> useState 사용
<button>여기는 console 2</button>
==> console 1 만 리렌더링 됨
1. 트리거 (Trigger)
React에게 "화면을 다시 그려야 해!"라고 알리는 단계
예시 (트리거가 되는 행동들):
- setState() 호출
- 부모 컴포넌트가 리렌더링되면서 props가 바뀜
- useReducer, useContext 등의 값 변경
- 외부 이벤트(예: 클릭, 네트워크 응답 등)
jsx
복사편집
const [count, setCount] = useState(0); <button onClick={() => setCount(count + 1)}>+</button>
이렇게 setCount를 호출하면 **화면을 업데이트해야 한다는 신호(트리거)**가 발생해.
2. 렌더링 (Rendering)
컴포넌트를 다시 호출해서 JSX를 계산하는 단계
이 단계에서 React는:
- 변경된 state/props 기반으로 컴포넌트 함수를 다시 실행
- 새로운 Virtual DOM (가상 DOM) 트리를 만듦
- 이전 Virtual DOM과 비교(Diffing)해서 어떤 변경이 생겼는지 파악
이때 화면은 실제로 바뀌지 않아!
그냥 "무엇이 바뀌었는지" 판단하는 단계야.
3. 커밋 (Commit)
계산된 변경 사항을 실제 브라우저 DOM에 반영하는 단계
이 단계에서 React는:
- 화면(DOM)을 업데이트함
- useEffect 등의 사이드 이펙트 함수 실행
- ref 변경 반영
jsx
복사편집
useEffect(() => { console.log("DOM이 실제로 바뀐 후 실행됨"); }, [count]);
useEffect는 바로 이 커밋 이후에 실행돼.
즉, 화면이 실제로 바뀐 다음에 동작함.
🧠 요약
단계무엇을 하나요?관련 예시
| 트리거 | 상태 변경을 감지 | setState, props 변경 등 |
| 렌더링 | JSX → Virtual DOM 계산 | 컴포넌트 함수 재실행 |
| 커밋 | DOM 변경 + useEffect 실행 | 실제 브라우저 화면 업데이트 |
728x90
'개발 > 🟦 React' 카테고리의 다른 글
| 🟦[React] Todo List 짜보기 (0) | 2025.06.07 |
|---|---|
| 🟦[React] useState와 useImmer의 차이 (0) | 2025.06.06 |
| 리액트 크롬 디버깅_리렌더링 된 컴포넌트 하이라이트 하기 (0) | 2025.06.05 |
| [React] app router_ 폴더 기준 (0) | 2025.05.03 |
| [React] 18버전 컴포넌트 props 매개변수 기본값 warning (1) | 2025.04.30 |
Comments
