MVVM 패턴의 뷰모델(ViewModel) 레이어에 해당하는 화면 (View)단 라이브러리
Vue 구조도
Vue의 두가지 큰 특징:
<div id="app"></div>
<script>
var div = document.querySelector('#app');
console.log(div);
div.innerHTML = 'Hello World';
</script>
<!-- 결과 -->
<div id="app">
Hello World
</div>
특정 태그마다 서버에서 받아온 데이터를 변수화하여 그 변수의 값이 화면에 나타나게 된다.
변수로 받아온 데이터의 내용을 변경해주더라도 화면에 해당 내용이 반영되지 않는다.
console.log(div);
var div = document.querySelector('#app');
var string = 'Hello World'
div.innerHTML = string;
string = 'Hello World!!!!!!'
// string 변수를 재선언 해줘도 무효하다
div
태그에 innerHTML
로 다시 덮어씌우면 변수의 변경된 값이 출력된다.
console.log(div);
var div = document.querySelector('#app');
var string = 'Hello World'
div.innerHTML = string;
string = 'Hello World!!!!!!'
div.innerHTML = string;
기존 방식과 다르게 반응성(Reactivity)을 반영해 코드를 개선해본다.
Object.definePropertt()
는 객체의 동작을 재정의하는 api이며, 문법은 아래와 같다.
Object.defineProperty(대상 객체, 객체의 속성, {
정의할 내용
})