업데이트:
Template Syntax
- v-text
- v-html
- v-show
- v-if, v-else-if, v-else
- v-for
- v-on
- v-bind
- v-model
- v-pre
- v-cloak
- v-once
```html
<template>
<div>
<!-- 보간법 : 데이터바인딩 1 -->
<div>{{msg}}</div>
<!-- 위 보간법과 동일한 결과 : 데이터바인딩 2 -->
<div v-text="msg"></div>
<!-- 담고 싶은 데이터를 string이 아닌 html형식으로 출력함. -->
<div v-html></div>
<!-- ok 값이 true이면 영역이 노출되고, false이면 style="display:none"으로 가려짐. -->
<div v-show="ok">{{msg}}</div>
<!-- who 값에 맞는 데이터를 노출함(조건에 맞지 않은 영역은 DOM에 포함되지 않음.) -->
<div v-if="who == 'girl'">영희</div>
<div v-else-if="who == 'boy'">철수</div>
<div v-else>바둑이</div>
<!-- 배열의 길이만큼 값을 뿌려줌. value, key, index의 값을 사용할수 있음. -->
<!-- v-for와 v-if가 함께 사용될때, v-for의 우선순위가 높음. -->
<!-- 2.2.0 이상에서 v-for는 key 가 필수 -->
<ul>
<li v-for="(fruit, key, index) in fruits" :key="index">{{fruit}}</li>
</ul>
<!-- 이벤트를 사용할때, v-on를 사용. 약어는 @ -->
<!-- 키보드 및 마우스 이벤트 모두 정의 가능 -->
<!-- 이벤트의 수식어를 사용할 수 있음. -->
<!-- 사용자 이벤트를 호출할 수 있음. -->
<button v-on:click="message()"></button>
<button @click="message()"></button>
<!-- //약어사용-->
<button v-on:click.prevent="message()"></button>
<button v-on:message="getMessage()"></button>
<!-- data속성에 바인딩함. 또는 하위 컴포넌트에 데이터를 전달할 때 사용, 약어는 : -->
<div v-bind:class="classes">{{msg}}</div>
<div :class="classes">{{msg}}</div>
<!-- form 요소(input, select, textarea)와 components에 사용되며, data를 양방향으로 서로 주고받음. -->
<input type="text" v-model="value" />
<!-- 이 엘리먼트와 모든 자식 엘리먼트에 대한 컴파일을 건너 뜀 -->
<div v-pre>{{이 부분은 컴파일 되지 않습니다}}</div>
<!-- v-cloak은 어떠한 css 스타일을 정의되었을 때, Vue인스턴스가 컴파일이 완료되기 전까지만
v-cloak를 처리함. 그 이후에는 해지됨. -->
<!--// css -->
[v-cloak] { display:none; }
<div v-cloak></div>
<!-- v-once는 한번만 렌더링됨. 추후 변경사항에 대한 반영이 되지 않음. -->
<!-- 아래예제에서 pineapple값을 추가하여도, 목록에 추가되지 않음. -->
<ul>
<li v-for="fruit in fruits" v-once>{{fruit}}</li>
</ul>
<button @click="appFruit()">Click</button>
</div>
</template>
```
export default {
data: function() {
return {
msg: "Hello World!!",
ok: true,
who: "girl", //or 'boy' or 'dog'
fruits: ["apple", "banana", "orange"],
classes: { bg: false, colorRed: true },
value: "ID를 입력하세요."
};
},
methods: {
message: function() {
alert(this.msg);
},
appFruit() {
this.fruits.push("pineapple");
}
}
};
.bg {
background-color: blue;
}
.colorRed {
color: red;
}
댓글남기기