Vue 템플릿 -6
2018-03-27
Vue로 그리는 화면의 요소들, 함수, 데이터 속성을 모두 Templates 안에 포함된다.
- Vue는 DOM의 요소와 Vue 인스턴스를 매핑할 수 있는 HTML template 을 사용.
- Vue는 Template으로 렌더링 할 때 Virtual DOM을 사용하여 DOM조작을 최소화 하고 렌더링을 꼭 다시 해야만 하는 요소를 계산하여 성능 부하를 최소화 한다.
- 원핟다면 render function을 직접 구현하여 사용 가능하다.
Attributes
- HTML Attributes를 Vue의 변수와 연결할 때는 v-bind를 이용.
<div v-bind:id="dynamicId"></div>
JS Expressions
- {{ }} 안에 다음과 같이 javascript표현식도 가능하다.
<div>{{ number+1 }}</div> <!-- O -->
<div>{{ message.split('').reverse().join('') }}</div> <!-- O -->
Directives
- v- 접두사를 붙인 Attributes로, javscript 표현식으로 값을 나타내는게 일반적이다 :을 붙여 인자를 받아 취급할 수 있다.
<p v-if="seen">Now you see me</p>
<!-- : 뒤에 선언한 href 인자를 받아 url 값이랑 매핑 -->
<a v-bind:href=url></a>
<!-- click 이벤트를 받아 vue에 넘겨준다 -->
<a v-on:click="doSomething"></a>
Filter
화면에 표시되는 텍스트의 형식을 편하게 바꿀 수 있도록 고안된 기능, ‘|‘을 이용하여 여러개의 필터를 적용할 수 있다.
<!-- message에 표시될 문자에 capitalize 필터를 적용하여 첫 글자를 대문자로 변경한다. -->
{{ message | capitalize}}
new Vue({
// ..
filters: {
capitalize: function (value) {
if (!value) return ''
value = value.toString()
return value.charAt(0).toUpperCase() + value.slice(1)
}
}
})