유저 인터페이스
와 인터랙션
을 제공하게된다면 => 많은 DOM요소를 관리하고 코드까지 정리하게 되어 힘들어진다.웹개발을할때 귀찮은 DOM관리와 상태 값 업데이트 관리를 최소한으로하고 오직 기능개발, 사용자 인터페이스 구현에 집중할 수 있도록 라이브러리 프레임 워크가 만들어졌다.
라이브러리
이다.리덕스
, 리액트 라우터
같은 다양한 라이브러리 제공프레임워크의 공통점은? Model
데이터가 바뀔때마다 즉각적으로 변화하도록 하는 양방향바인딩
속성이 있다.
변화
페이스북에서는 데이터가 바뀌면 mutation하지 않고 view하면 어떨까? 라는 생각을 하게된다.
but 간단해보이지만 브라우저는 DOM기반으로 작동하기 때문에 페이지가 그때그때 view를 만들려고하면 성능적으로 문제가 생길 것이다.
그래서 존재하는게 바로
virtual DOM
= 가상돔이다.
변화가 일어나면 브라우저 돔에 새로운 것을 넣는게 아니라 자바스크립트로 이루어진 가상의 돔에 한번 렌더링을 하고 기존의 돔과 비교한뒤 변화가 필요한 곳에만 업데이트를 해주는 것
virtual DOM을 사용함으로 데이터가 바뀌었을때 더이상 어떻게 업데이트할지를 고려하는게 아니라 일단 바뀐 데이터로 그려놓고 비교를 한 다음에 바뀐 부분만 찾아서 바꿔주는 것이다.
라이브러리
가 매우 다양함정리하자면 웹프로젝트를 만들때 전체적으로 파일들을 관리해주는 도구라고 이해하면 된다.
💻 강의 링크
🔍 참고문서
React and the Virtual DOM