ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3.2장
    React/실전 리액트 프로그래밍 2023. 2. 3. 23:54

    3.2 리액트 요소와 가상 돔

     

    • 리액트 요소는 UI를 표현하는 수단이다.
    • 렌더링 성능을 높이기 위해 가상 돔을 활용한다.
    • 기존의 방식은 돔을 변경하면 돔을 다시렌더링 하지만 리액트의 경우 메모리에 가상돔을 생성하여 기존의 돔과 비교한 후 변경된 점만 찾아서 실제 돔에 렌더링 해주는 방식을 사용한다.

     

    3.2.1 리액트 요소 이해하기

     

    • JSX 코드 createElement 변환 과정 이해하기
    const element = <a href="http://google.com">click here</a>;
    const element = React.createElement(
        'a',
        { href: 'http://google.com' },
        'click here',
    );

     

    • JSX 코드가 createElement 코드로 변환되는 과정이다
    • 한개 더 예시를 살펴보자
    const element = ( 
        <a key="key1" style ={{ width: 100}} href="http://google.com">click here</a>
    );
    const element = React.createElement(
        type: 'a',
        key : "key1",
        ref: null,
        props: { 
            href: 'http://google.com',
            style: {
                width: 100,
            },
            children : 'click here'
            },
    );

     

    • key 와 ref를 제외한 값들은 모두 props 로 들어가게 된다.
    • type에 "" 문자열이 아닌 컴포넌트가 들어갈 경우 해당 컴포넌트도 createElement 로 변경하는 과정을 거쳐 type 에는 모두 문자열만 오도록 변환해주는 과정을 진행중이다.
    • 리액트 요소는 불변 객체이기 때문에 속성값을 변경할 수 없다.

    3.2.2 리액트 요소가 돔 요소로 만들어지는 과정

     

    • 데이터 변경에 의한 화면 업데이트는 렌더 단계와 커밋 단계를 거치게 된다.
      • 렌더 단계 : 실제 돔에 반영할 변경 사항을 파악하는 단계
        • 가상 돔을 이용하여 이전의 가상돔과 비교하여 달라진 점을 찾아 실제 돔에 적용하여 변경 사항을 최소화
        • 돔을 변경하는 작업이 다른 작업에 비해 오래 걸리기 때문에 필요한 부분만 변경하는 것이 좋다.
      • 커밋 단계 : 파악된 변경 사항을 실제 돔에 반영하는 단계
    • 파이버 구조체 변환

    그림 출처 : https://velog.io/@jangws/React-Fiber

    'React > 실전 리액트 프로그래밍' 카테고리의 다른 글

    3.6 장  (0) 2023.02.10
    3.5 장  (0) 2023.02.10
    3.4장  (0) 2023.02.04
    3.3장  (0) 2023.02.03
    3.1장  (0) 2023.02.03

    댓글

Designed by Tistory.