인프런 커뮤니티 질문&답변

열씨미살자!님의 프로필 이미지

작성한 질문수

Vue.js 시작하기 - Age of Vue.js

Reactivity 구현

defineProperty()에 대한 질문입니다...

작성

·

250

3

1. Object.defineProperty()를 이용하여 데이터를 바꿔주게되면 실제로는 가상돔에 적용되고 싱글파일컴포넌트 부분이 재랜더링이 일어나면서 화면이 바뀌는 건가요?

2. 리액트에서도 setState를 통해 데이터가 바뀌게 되면 재랜더링이 일어나 화면을 그려주게 되는데 vue.js에서 사용하는 Object.defineProperty api를 적용해서 만든건지 궁금합니다.

답변 2

1

안녕하세요 dongwoo kim님,

1. 제가 수업에서 구현한 부분은 Reactivity를 이해하기 위해 Object.defineProperty() 메서드로 실제 DOM을 조작한 것입니다. 뷰 라이브러리 내부적으로는 이 원리에 Virtual DOM을 활용하고 있습니다. 아마 제가 알기로는 스냅돔을 쓰고 있었던 것 같아요.

https://github.com/snabbdom/snabbdom

2. 리액트 라이브러리의 내부 구조는 제가 정확히 알지 못해서 답변이 어려울 것 같습니다 :)

0

궁금했던 질문과 답변 잘 봤습니다.