1️⃣ 구성 요소
- react 코어
- 컴포넌트 정의
- 다른 패키지에 의존성 X, 다양한 플랫폼(브라우저, 모바일)에 올려서 사용 가능
- renderer
- react-dom, react-native-renderer 호스트(브라우저 or 모바일) 렌더링 환경에 의존
- 호스트와 react를 연결 → 즉, 웹에서는 DOM 조작
- reconciler 와 lagacy-events 패키지 에 의존
- event(legacy-event)
- (아래 레퍼런스 react 공식문서 링크 참고)
- SyntheticEvent 라는 이름의 내부적으로 개발된 이벤트 시스템
- 기존 웹에서의 event를 wrapping 하여 추가적인 기능을 수행할 수 있게 함
- scheduler
- 리액트는 Task를 비동기로 실행. 이 Task 를 실행하는 타이밍을 알고 있는 패키지
- ex) state를 setState로 바꾼 후에 바로 state를 console 찍어보면 이전 state가 불러와짐
→ 즉, setState는 동기처럼 보이지만 실제 업데이트와 반영은 scheduler가 제어하는 비동기 작업(Task) 으로 실행됨
- reconciler
- fiber 아키텍처에서 VDOM을 재조정
- 컴포넌트를 호출하는 곳
2️⃣ 용어
- 렌더링
- 컴포넌트를 호출하여 react element 를 return 받음 → VDOM 에 적용(재조정)하는 과정
- 전체 과정
- 컴포넌트 호출 (return react element)
- VDOM 재조정 작업 (여기까지가 렌더링)
- renderer 가 컴포넌트 정보를 DOM에 삽입 (mount)
- 브라우저가 DOM을 paint
- React Element
- 컴포넌트 호출시 return 하는 것 (JSX가 babel을 통해 react.createElement() 를 호출해서 리턴 받는 것)
- 컴포넌트의 정보(DOM에 삽입될 내용 - type, key, props, ref 등의 정보)를 담은 객체
- Fiber
- VDOM 의 노드 객체 (아키텍처 이름과 동일함)
- react element의 내용이 DOM에 반영되기 위해 먼저 VDOM에 추가되어야 하는데, 이를 위해 확장한 객체
→ 컴포넌트의 상태, 라이프 사이클, 훅을 더해 react element를 확장한 것
📚 레퍼런스
'FE > React' 카테고리의 다른 글
[React 까보기] 5. setState (feat. dispatchAction) (0) | 2025.06.11 |
---|---|
[React 까보기] 4. useState 의 구현체 (0) | 2025.06.11 |
[React 까보기] 3. Hook 구현체 찾아가기 (0) | 2025.04.26 |
[React 까보기] 2. VDOM 과 React lifecycle (0) | 2025.04.14 |