이미지 출처(https://vuejs.org/images/logo.png)
디렉티브란 Vue.js 에서 사용되는 특별한 속성 입니다. Angular1 을 사용해보셨던 분들은 익숙할 것 입니다. Angular에서 ng-
를 사용한다면 Vue 에서는 v-
라는 접두사를 사용합니다. 이번 포스팅에서는 Vue.js 에서 기본적으로 제공하는 디렉티브 몇가지를 알아보려고 합니다.
v-text와 v-html
1 | <div id="app"> |
1 | var app = new Vue({ |
v-text:
{{ }}
와 같은 기능을 합니다. 해당 엘리먼트의 값이 data의 text 값으로 설정 된 것을 볼 수 있습니다.v-html: html 코드를 랜더링 할 경우 사용합니다. v-text나 머스타치 구문을 사용할 경우 해당 string값 그대로 표시됩니다.
v-show와 v-if
1 | <div id="app"> |
1 | var app = new Vue({ |
v-show와 v-if 모두 화면에 표시하는지 안하는지에 대한 지시자 입니다.
v-show: css의 display 속성에 의하여 컨트롤 됩니다. 값이 false여도 랜더링은 되지만 display: none 처리가 되어있는 것 입니다.
v-if: 해당 엘리먼트의 랜더링 여부가 판단됩니다. 값이 false면 랜더링이 되지 않습니다. true라면 랜더링이 될 것이며 true에서 false로 변경될 때는 해당 엘리먼트가 삭제됩니다.
아래 이미지를 보면 v-if는 해당 엘리먼트가 랜더링 되지 않았고, v-show 경우 display: none 처리가 되어있는 것을 보실 수 있습니다.
v-if의 else
if문이 있으니 else 와 else if도 자연스럽게 따라오게 됩니다.
1 | <div id="app"> |
1 | var app = new Vue({ |
바로 v-else-if와 v-else는 바로 이전 형제엘리먼트가 v-if
일 경우 사용한다는 점만 기억해두시면 됩니다. ( 우리가 아는 if와 같습니다! )
v-for 디렉티브
1 | <div id="app"> |
1 | var app = new Vue({ |
v-for디렉티브는 굉장히 자주 사용되는 디렉티브 중 하나 입니다. 이 디렉티브는 기본적으로 alias in(of) expression
문법을 사용하며 expression자리에는 뷰모델의 데이터 들 중 Array, Object, Number, String 형태를 가진 값들이 올 수 있습니다.
Array: 배열을 순환하며 alias 에 해당 인덱스의 값을 부여합니다.
(alias, index) in expression
형태로 변경하여 인덱스 값 또한 넘겨받을 수 있습니다.Object: 배열과 마찬가지로 객체를 순환합니다. 순환 순서는 Object.keys()로 나열된 키의 순서로 결정됩니다.
(alias, key, index) in expression
형태로 사용이 가능합니다.Number: expression의 값 만큼 순환하며 그 값은 1부터 시작합니다.
String: 문자열을 한자 한자 쪼개 한 단어씩 순환하며 표기합니다.