">
<h1 **v-once** @click="add">
<h1 **v-html**="msg">
<h1 **v-bind**:class="msg">
<h1 **v-on**:click="add">
<h1 **:[attr]**="active" @**[event]**="click">
<li **v-for="(fruit, index) in fruits"** :key="fruit"> {{ fruit }} - {{ index }} </li>
<section **v-if**="fruits.length > 0">
- v-once : 데이터가 변경되어도 갱신되지 않는다.
- v-html : 데이터를 일반 텍스트가 아닌, html 형식으로 출력한다.
- v-bind : 보간체({{ }})를 사용하지 않으면서 디렉티브 속성의 값에 데이터를 삽입할 수 있다. v-bind 키워드를 생략하고 콜론 기호만 남긴 채로 사용할 수 있다.
- v-on : 특정 이벤트가 발생했을 때, 특정 메소드(핸들러)를 실행시킨다. v-on 키워드를 생략하고 @ 기호만 남긴 채로 사용할 수 있다.
- [] : 데이터의 값을 디렉티브 속성의 이름으로 삽입할 수 있다.
- v-for : vue의 for문이다. :key 속성의 값에는 고유한 값이 들어가야 한다. (shortid : 고유한 값을 만들어 내는 패키지)
- v-if : vue의 if문이다.
v-bind
// 클래스 바인딩
<h1 :class="**{active: isActive }**">
<h1 :class="**classObject**">
data() {
return {
classObject: {
active: true,
'text-danger': false
}
}
}
// 스타일 바인딩
<h1 :style="{ color: activeColor, 'font-size': fontSize + 'px' }">
data() {
return {
activeColor: 'red',
fontSize: 30
}
}
- v-bind 속성 값에 객체 자체를 삽입할 수 있다.
- 바인딩 되는 데이터의 수가 두 개 이상이라면 그 데이터들을 data() 옵션에서 하나의 객체로 만든 뒤, 만든 객체 자체를 v-bind 속성과 바인딩한다.
v-if
<h1 **v-if**="isShow"> show </h1>
<h1 **v-else-if**="count > 3"> count > 3 </h1>
<h1 **v-else**> else </h1>
<h1 **v-show**="isShow">
- v-if는 값이 true인 경우에만 렌더링(html에 포함하기)하지만 v-show는 값에 상관 없이 항상 렌더링한다.
- 따라서 토글 버튼과 같이 무언가를 자주 전환해야 한다면 렌더링 과부하가 덜 걸리는 v-show를 사용하는 것이 좋다.