virtual DOM이란 실제 DOM을 가상화한 객체이다.
virtual DOM이 없다면 상태값이 변경되고 변경이 되었으니 브라우저는 html DOM을 새로 구성하고 만들기 시작할 것이다. 작은 내용을 수정하여도 전부를 다시 만들어야 되므로 매우 비효율적이다.
virtual DOM은 html DOM과 같이 객체 모델로 만들어져서 상태값이 수정된 DOM의 노드와 그 노드의 모든 자식 노드들을 새롭게 다시 구성해서 과거 HTML DOM의 방식을 매번 새롭게 바꾸는 것보다 효율적이다.
virtual DOM은 추가적으로 생성되어 자원을 더 잡아먹는다.
만약에 최상위 노드를 변경해서 거의 전부를 렌더링하게 되는 경우에는 오히려 더 안좋다고 생각이 된다.
이전의 virtual DOM과 현재 virtual DOM을 비교해서 상태값이 다르다면 새로운 virtual DOM을 구성을 한다.