오늘, 처음으로 Vue를 배웠다. 다함께 부숴보자! (with 코딩애플)
귀찮으면 굵은 글씨만 읽자
HTML에 바로 변수를 꽂아버릴 수 있다. {{}}을 통한 데이터 바인딩으로.
그에 앞서, 변수들을 아래와 같이 object 형식으로 한 곳(state)에 모아둔다.
<script>
export default {
name : 'App',
data(){
return {
name : "홍길동",
age : 22,
mt-4 : "margin-top:4px"
}
}
}
</script>
그리고 HTML 중간에 가져다 쓸 때는,
<h4> 이름은 {{name}}이며 나이는 {{age}}이다 </h4>
이렇게 쓰면된다. 호오오오...너무 편하다!
장점
- 늘 말하는 변수의 장점. 수정이 편리하다!
- Vue의 장점인 실시간 렌더링(업데이트) 기능을 사용하기 위해
또한, HTML 속성에도 (태그에도) 데이터 바인딩이 가능하다.
class나 style과 같은 속성 앞에 : 을 붙이자.
<h4 :style="mt-4"> 안녕하세요? </h4>
태그를 반복하고 싶다? v-for을 쓴다. 다음과 같이 쓰면된다.
<a v-for="(반복내용물, 인덱스) in 반복대상" :key="인덱스"> {{반복내용물}}</a>
반복내용물이나 인덱스는 해당 태그 내에서 변수로 사용하면된다.
지나치게 많이 반복되는 경우에 사용하거나,
변동적인 수만큼 반복되는 경우 사용하자.
<button @click="클릭한횟수++"> 버튼을 누르세요! </button>
<p> 클릭한 횟수 : {클릭한횟수} </p>
함수 사용의 경우 아까 변수처럼 같이 뭉탱이(유리게슝)로 선언해두면 된다. 아래처럼 함수 선언을 하면, 위 코드의 "클릭한횟수++"를 "increase"로 바꾸면 될거라고 짐작할 수 있다.
<script>
export default {
name : 'App',
data(){
return {
클릭한횟수 : 0,
},
methods : {
increase(){
this.클릭한횟수 += 1
}
}
}
</script>
동적인 UI 만들기 : 상태를 변수로 저장하고, 상태에 따라 모습을 변경한다
export default / import
v-if, v-else, v-else-if
컴포넌트
<input v-model.number="변수">
data(){
return {
month : 1
}
},
watch : {
변수(){
alert('변수가 이상하면 대충 뜨는 알림')
}
}
<div :class="{ 클래스명 : 조건 }"> </div>
<transition name="작명"></transition>
.작명-enter-from { 애니메이션 동작 전 상태 }
.작명-enter-active { 애니메이션 동작 중 상태, 대부분 transition 이런거 }
.작명-enter-to { 애니메이션 동작 후 상태 }
.작명-end-from { 애니메이션 동작 전 상태 }
.작명-end-active { 애니메이션 동작 중 상태, 대부분 transition 이런거 }
.작명-end-to { 애니메이션 동작 후 상태 }