Vue 2 를 기준으로 작성되었습니다.
<template>
<!-- HTML -->
<div>
<p>Hello :)</p>
</div>
</template>
<script>
// JavaScript
</script>
<style>
/* CSS */
p {
color: black;
}
</style>
<body>
<div id="app">
<p id="name">name : </p>
<input id="inputName" type="text">
</div>
<script>
// 1. input tag 선택
const input = document.querySelector('#inputName')
// 2. p tag 선택
const name = document.querySelector('#name')
// 3. addEventListener 추가
input.addEventListener('input', function(evnet){
name.innerText = name.innerText + event.target.value
})
</script>
</body>
el, data 설정{{}}<body>
<div id="app">
<p id="name">name : {{ message }}</p>
<input id="inputName" type="text" v-model="message">
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
// CODE HERE
const app = new Vue({
el: '#app',
data: {
message: '',
}
})
</script>
</body>


View - 우리 눈에 보이는 부분 = DOMModel - 실제 데이터 = JSONView Model (Vue)new 연산자를 사용한 생성자 함수 호출<!-- Vue CDN -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
const vm = new Vue()
console.log(vm)
</script>

el (element)Object 연결#app 작성 = DOM 연결const app = new Vue({
el: '#app'
})
console.log(app)

{{ message }} 작성message 속성이 정의되지 않았다는 경고와 {{ message }}가 그대로 출력되는 차이<div id="app">
<p>{{ message }}</p> // 경고 출력
</div>
<div>
<p>{{ message }}</p> // 그대로 출력
</div>
<script>
const app = new Vue({
el: '#app',
})
console.log(app)
</script>

데이터 객체 혹은 인스턴스 속성{ } (Object) 여야 함interpolation {{ }}을 통해 view에 렌더링 가능함data 객체 추가message 값 추가this.message 형태로 접근 가능<div id="app">
<p>{{ message }}</p>
</div>
<!-- Vue CDN -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'Hellow, Vue !',
},
})
console.log(app)
</script>
method들을 정의하는 곳methods 객체 정의<div id="app">
<p>{{ message }}</p>
</div>
<!-- Vue CDN -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'Hellow, Vue !',
},
methods: {
print: function() {
console.log(this.message)
},
}
})
</script>
app.print() 실행
<div id="app">
<p>{{ message }}</p>
</div>
<!-- Vue CDN -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'Hellow, Vue !',
},
methods: {
print: function() {
console.log(this.message)
},
bye: function () {
this.message = 'Bye, Vue !'
}
}
})
</script>
app.bye() 실행
