데이터 바인딩을 사용하여 View와 ViewModel 간에 양방향 데이터 흐름을 유지한다.
MVVM은 각 구성 요소가 엄격하게 분리되어 유지되어 코드의 재사용성과 테스트 용이성을 높인다.
구성 요소는 Model, View, ViewModel을 갖고있다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MVVM Example</title>
</head>
<body>
<div id="app">
<div>
<label for="firstName">First Name:</label>
<input type="text" id="firstName" v-model="firstName" />
</div>
<div>
<label for="lastName">Last Name:</label>
<input type="text" id="lastName" v-model="lastName" />
</div>
<div>
<p>Full Name: {{ fullName }}</p>
</div>
</div>
<script>
new Vue({
el: '#app',
data: {
firstName: '',
lastName: ''
},
computed: {
fullName: function () {
return this.firstName + ' ' + this.lastName;
}
}
});
</script>
</body>
</html>
v-model 디렉티브를 사용하여 입력 요소와 데이터 속성을 양방향으로 바인딩
사용자가 입력 필드에 값을 입력하면 Vue 인스턴스의 데이터 속성이 업데이트되고 화면에 바로 반영된다.