일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- db
- CS
- 알고리즘
- Redux
- 안드로이드
- java
- Algorithm
- 그레이들
- 리트코드
- 다이나믹 프로그래밍
- network
- vscode
- Graph
- Python
- git
- TypeScript
- 동적 계획법
- react
- Database
- DFS
- 백준
- LeetCode
- Data Structure
- 자바
- BFS
- frontend
- Javascript
- 프로그래머스
- VIM
- DP
Archives
- Today
- Total
늘 겸손하게
React - Virtual DOM과 작동원리 본문
DOM이란?
Document Object Model의 축약어로 브라우저에서 다룰 HTML을 파싱하여 이해하기 쉽게 트리 구조로 표현한 객체입니다. DOM은 웹 페이지의 객체 지향 표현이고, 자바스크립트와 같은 스크립팅 언어를 이용해 DOM을 수정할 수 있습니다. 기본적으로 자바스크립트에는 DOM을 조작할 수 있는 DOM API들을 제공합니다.
Virtual DOM이란?
위의 DOM을 추상화한 객체입니다. DOM을 추상화한 가벼운 사본을 메모리에 만들어 놓은 것.
DOM 추상화 이유
DOM을 반복적으로 직접 수정하면 수정이 일어날때마다 브라우저 렌더링이 일어나게되고, 변경점이 없는 부분까지 리렌더링되어 PC 자원을 낭비하게됩니다. 이 문제를 해결하기 위해 DOM을 추상화합니다.
작동원리
변경사항이 있을때 DOM을 다시 로딩하여 렌더링하는것이 아니라 Virtual DOM에다가 변경사항을 적용하고, 이전 Virtual DOM과 변경이 가해진 Virtual DOM을 비교하여 차이점을 기억합니다( Diffing ). 그런 뒤, 실제 DOM과 Virtual DOM사이에 차이점만 다시 렌더링하는 방식으로 변경사항이 없는 부분의 반복적인 리렌더링을 막습니다.
출처 :
https://velog.io/@qortmdalsdl/React-%EB%8F%99%EC%9E%91-%EA%B5%AC%EC%A1%B0-Virtual-DOM
https://jeong-pro.tistory.com/210
https://www.howdy-mj.me/dom/what-is-dom/
'Programming > React' 카테고리의 다른 글
Redux - 왜 Redux를 사용하나요? (0) | 2022.07.18 |
---|---|
React - 왜 React를 사용하는가? (0) | 2022.07.17 |
React - react-router-dom - useHistory + 데이터 전달 (0) | 2022.07.13 |
React - MUI Accordian 스타일 접기/펼치기 버튼 (0) | 2022.07.12 |
React - Module not found: Can't resolve '@mui/material/utils' : (v5, which included a name change.) (0) | 2022.07.12 |