[코드잇 스프린트 풀스택 4기] React Virtual DOM

2024. 11. 25. 10:21·개발이야기/웹개발
반응형

Virtual DOM(가상돔)

리액트에서는 실제 DOM(Document Object Model)을 조작하는 것이 아니라 가상의 DOM을 만들어 기존과의 차이점을 비교한 후 달라진 부분이 있을 경우 다시 렌더링하는 방식을 사용한다.

리액트는 내부적으로 렌더링된 UI를 자바스크립트 객체로 관리하는데 실제 DOM노드를 생성하거나 접근해서 변경하는 것보다 이 자바스크립트 객체로 표현된 DOM 트리를 조작하는 것이 훨씬 빠르기 때문이다.

 

React의 Virtual DOM 비교 단계

1. UI가 변경을 감지하면 UI를 Virtual DOM으로 렌더링한다. (실제 화면상이 아님)

2. 지금 렌더링한 Virtual DOM과 이전의 Virtual DOM을 비교해 차이를 계산한다.

3. 변경된 부분을 실제 DOM에 반영한다.

 

React의 얕은 비교

배열이나 객체 등 참조값을 가지는 자료형의 경우 내부의 속성을 변경하더라도 참조값이 같은 경우 이를 감지하지 못한다. 그래서 이런 자료형들은 배열이나 객체를 복사하여 사용해야 하며 이를 setState에 담아주면 변경을 감지할 수 있다.

 

Virtual DOM의 장단점

1. 장점

렌더링 성능 향상과 일관정, 크로스 플랫폼 지원 등

2. 단점

Virtual DOM 객체를 위해 메모리를 추가로 사용, 복잡성 증가, 작은 규모의 애플리케이션에는 오버헤드

반응형

'개발이야기 > 웹개발' 카테고리의 다른 글

[코드잇 스프린트 풀스택 4기] 리액트(React)의 렌더링 방식  (1) 2024.11.25
[코드잇 스프린트 풀스택 4기] 리액트(React) 컴포넌트  (0) 2024.11.25
[코드잇 스프린트 풀스택 4기] 렉시컬 스코프(Lexical Scope)  (0) 2024.11.25
[코드잇 스프린트 풀스택 4기] 자바스크립트의 this  (0) 2024.11.25
[코드잇 스프린트 풀스택 4기] 자바스크립트의 var, let, const  (0) 2024.11.25
'개발이야기/웹개발' 카테고리의 다른 글
  • [코드잇 스프린트 풀스택 4기] 리액트(React)의 렌더링 방식
  • [코드잇 스프린트 풀스택 4기] 리액트(React) 컴포넌트
  • [코드잇 스프린트 풀스택 4기] 렉시컬 스코프(Lexical Scope)
  • [코드잇 스프린트 풀스택 4기] 자바스크립트의 this
스탠다드
스탠다드
생각이 아니라 직접 경험한 것들이 나의 말과 글이 될 수 있기를.
  • 스탠다드
    지극히 상식적인 삶
    스탠다드
  • 전체
    오늘
    어제
    • 분류 전체보기 (43)
      • 육아 관련 이야기 (0)
      • 마케팅/광고 이야기 (1)
      • 스마트 따라잡기 (1)
      • PC.모바일 관련 팁 (5)
      • 스탠다드한 일상 (1)
      • 삶에 대한 고민 (3)
      • 개발이야기 (32)
        • Flutter공부 (1)
        • 웹개발 (31)
  • 블로그 메뉴

    • BLOG
    • TAG
    • GUESTBOOK
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    FLUTTER
    매직키보드
    gradleexception
    풀스택
    아이폰6S
    web clipper
    웹클리핑
    시멘틱태그
    전원강제종료
    웹클리퍼
    React
    유저인증
    스마트키보드
    한결같은 사람
    공익신고
    build.gradle
    NextJS
    web clipping
    액정먹통
    태블릿pc입력판
    tablet pc 입력판
    전원강제재부팅
    코드잇
    JWT
    Firebase
    한영전환
    다운로드대기중
    눈치보게 하는 사람
    리액트
    스프린트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
스탠다드
[코드잇 스프린트 풀스택 4기] React Virtual DOM
상단으로

티스토리툴바