MVC 패턴의 단점: View와 Model 사이의 의존성이 높다
View와 Model의 높은 의존성은 어플리케이션이 커질수록 복잡하지고 유지보수가 어려워진다.
MVVM 패턴은 View와 Model 사이의 의존성이 없습니다.
각각의 부분은 독립적이기 때문에 모듈화 하여 개발할 수 있습니다.
HTML : 태그, DOM의 정보를 제작
CSS : 태그, DOM의 스타일 추가
JS : 태그, DOM의 내용을 조작
<body>
<div id="app"></div>
<script>
const div = document.querySelector("#app");
let str = "hi";
div.innerHTML = str; // div안의 내용 변경을 원한다면 다시 입력해야함..
str = "bye";
div.innerHTML = str;
</script>
</body>
Vue의 핵심 : reactivity(반응성)
데이터의 변화를 라이브러리에서 감지하여 화면에 바로 반영하는 것
Vue는 기본적으로 JavaScript 객체를 Vue 인스턴스 data 옵션으로 정의할 때 모든 속성들을 Object.defineProperty을 사용하여 Getter/Setter로 변환
➟ Object.defineproperty() Api 알아보기
➟ 반응성 깊이 알아보기
참고 : https://ui.toast.com/weekly-pick/ko_20210112
Object.defineProperty() // 객체의 특정 속성의 동작(접근과 할당)을 재정의(변경)하는 프로퍼티
Object.defineProperty(대상 객체, 객체의 속성,{
// 정의할 내용
get: function(){
//속성에 접근 했을 때의 동작 정의
}
set: function(){
//속성에 값을 할당 했을 때의 정의
}
})