- 템플릿 문법2024년 05월 27일 18시 20분 57초에 업로드 된 글입니다.작성자: 원2728x90반응형
텍스트 보간법
데이터 바인딩의 가장 기본적인 형태는 Mustache(이중 중괄호) {{ }}
속성 바인딩<div v-bind:id="dynamicId"></div>
v-bind 디렉티브는 엘리먼트의 id 속성을 컴포넌트의 dynamicId 속성과 동기화된 상태로 유지
바인딩 값이 null 또는 nudefined이면 엘리먼트의 속성이 제거된 상태롤 렌더링
단축 문법<div :id="dynamicId"></div>
불리언 특성<button :disabled="isButtonDisabled">버튼</button>
truthy 값이 있는경우 ture / 그 외 falsy 의 경우 속성 생략
여러 속성을 동적으로 바인딩
여러 속성을 나타내는 JavaScript 객체가 있는 경우const objectOfAttrs = { id: 'container', class: 'wrapper', style: 'background-color:green' }
//template <div v-bind="objectOfAttrs"></div>
자바스크립트 표현식 사용
지금까지는 템플릿의 간단한 속성 키에만 바인딩, 실제로 모든 데이터 바인딩 내에서 자바스크립트 표현식 기능 지원//template {{ number + 1 }} {{ ok ? '예' : '아니오' }} {{ message.split('').reverse().join('') }} <div :id="`list-${id}`"></div>
하나의 표현식만 가능
각 바인딩에는 하나의 단일 표현식만 포함될 수 있음, 아래 코드들은 작동하지 않는다//template <!-- 이것은 표현식이 아니라 선언식입니다: --> {{ var a = 1 }} <!-- 흐름 제어도 작동하지 않습니다. 삼항 표현식을 사용하십시오. --> {{ if (ok) { return message } }}
함수 호출
바인딩 표현식 내부에서 컴포넌트에서 노출하는 메서드를 호출 가능//template <time :title="toTitleDate(date)" :datetime="date"> {{ formatDate(date) }} </time>
디렉티브
v- 접두사가 있는 특수한 속성을 디렉티브라고 함
Vue는 위에서 소개한 v-html과 v-bind를 포함하여 빌트인 디렉티브를 제공
디렉티브 속성 값은 단일 자바스크립트 표현식이여야함(v-for, v-on, v-slot 제외)
디렉티브의 역할 : 표현식 값이 변경될 때 DOM에 반응적으로 업데이트를 적용하는 것//template <p v-if="seen">이제 이것을 볼 수 있습니다.</p>
v-if 디렉티브는 seen 의 불리언 (turthy / falsy) 값을 기반으로 <p> 엘리먼트를 삽입 또는 제거
인자
일부 디렉티브는 디렉티브 뒤에 콜론 ( : )으로 표시되는 "인자" 를 사용할 수 있음
예를 들어 디렉티브는 HTML 속성을 반응적으로 업데이트 하는데 사용//template <a v-bind:href="url"> ... </a> <!-- 단축 문법 --> <a :href="url"> ... </a> DOM 이벤트를 수신하는 v-on 디렉티브 <a v-on:click="doSomething"> ... </a> <!-- 단축 문법 --> <a @click="doSomething"> ... </a>
동적인 인자
디렉티브의 인자를 대괄호로 감싸서 JS 표현식으로 사용할 수도 있음//template <!-- 아래의 "동적인 인자 값 제약 조건" 및 "동적인 인자 문법 제약 조건" 섹션에 설명된 대로, 인자 표현식에는 몇 가지 제약 사항이 있음에 유의하십시오. --> <a v-bind:[attributeName]="url"> ... </a> <!-- 단축 문법 --> <a :[attributeName]="url"> ... </a>
여기서 attributeName 은 JS 표현식으로 동적으로 평가, 평가된 값은 인자의 최종값으로 사용
예를 들어 컴포넌트 인스턴스의 데이터에 attributeName 속성값이 "href" 인 경우, 바인딩은 v-bind:href 와 같다
마찬가지로 동적 인자를 사용, 핸들러에 이벤트 이름을 동적으로 바인딩 가능<a v-on:[eventName]="doSomething"> ... </a> <!-- 단축 문법 --> <a @[eventName]="doSomething"> ... </a>
여기서 eventName 의 값이 "focus" 인 경우, v-on:[eventName] 은 v-on:focus 와 같다
동적 인자 값 제약조건
null or 문자열로 평가 되어야함, null 은 바인딩을 명시적으로 제거ㅡ 문자열이 아닌 다른 값은 에러를 트리거
동적 인자 문법 제약조건<!-- 이렇게 하면 컴파일러 경고가 트리거 --> <a :['foo' + bar]="value"> ... </a> <a :[someAttr]="value"> ... </a>
someattr 로 변환됨, someAttr 속성을 사용했다면 코드가 작동하지 않음, 대문자로 키 이름을 지정하는 것을 피해야함
수식어
( . )으로 시작하는 특수한 접미사로, 디렉티브가 특별한 방식으로 바인딩되어야함
예를 들어 .prevent 수식어는 트리거된 이벤트에서 event.preventDefault()를 호출하도록 v-on 디렉티브에 지시
https://ko.vuejs.org/guide/essentials/template-syntaxVue.js
Vue.js - The Progressive JavaScript Framework
vuejs.org
728x90반응형'JS F- > Vue' 카테고리의 다른 글
리스트 렌더링 (0) 2024.05.28 조건부 렌더링 (0) 2024.05.28 클래스와 스타일 바인딩 (0) 2024.05.28 계산된 속성 (0) 2024.05.27 반응형 기초(컴포지션 API) (0) 2024.05.27 API 스타일 (0) 2024.05.27 다음글이 없습니다.이전글이 없습니다.댓글