Vue.js 템플릿 제어 지시어 요약
소개
Vue.js로 TO DO 앱 만들기의 연속입니다.
이번에는 지시어를 깊이 파고 갑니다.
v-once
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
},
methods: {
click(e) {
// 文字列を反転するメソッドを定義
this.message = this.message
.split('')
.reverse()
.join('')
}
}
})
다음은
v-once
를 정의하고 있기 때문에, 최초회만 텍스트 바인딩을 실시하고 있다.첫회 이후는 정적인 컨텐츠로서 취급되기 때문에, 버튼을 클릭해도 메소드가 발화하지 않는다.
<p v-once> <!-- v-onceを定義 -->>
{{ message }} <!-- Hello Vue.js -->
</p>
<button v-on:click="clickHandler">
文字が反転
</button>
v-pre
<p v-pre>
{{ message }} <!-- {{ message }} -->
</p>
v-html
data
선택적 속성에 HTML을 설정합니다.data: {
messageHtml: 'Hello <span style="color:red;">Vue.js!</span>'
}
v-html
지시문으로 확장합니다.<p v-html="messageHtml"></p>
※ XSS 취약성을 일으킬 우려가 있으므로 서비스를 이용하는 사용자가 입력한 콘텐츠에는 사용하지 않을 것.
v-cloak
페이지를 표시하기 시작한 후 인스턴스 생성이 끝날 때까지 마스터시 태그와 같은 컴파일 전에 템플릿이 표시되는 것을 방지합니다.
<p v-cloak> <!-- v-cloakを定義 -->
{{ message }}
</p>
v-cloak
에 대해 display: none
를 설정합니다.[v-cloak] {
display: none;
}
v-text
data
선택적 속성을 마스터 구문 이외에 표시하려는 경우.사용도 별로 없을 것 같다.
<p v-text="message"></p> <!-- Hello Vue.js! -->
JavaScript 표현
데이터 바인딩 내부에서는
JavaScript式
를 이용할 수 있다.data: {
message: 'Hello Vue.js!',
number: 100,
ok: true
}
<p>
{{ number + 1}} <!-- 101 -->
{{ message.split('').reverse().join('') }} <!-- !sj.euV olleH -->
</p>
흐름 제어는
三行演算子
를 이용한다.<p>
{{ ok? 'YES' : 'NO' }} <!-- YES -->
</p>
다음은 식이 아니며 문장이므로 오류가 발생합니다.
<p>
{{ var x = 1 }} <!-- error -->
</p>
필터(로컬)
Vue.js에서는 표현식 끝에 필터를 추가 할 수 있습니다.
data: {
price: 29800 //dataオプションにプロパティを設定
},
filters: { // filterにメソッドを追加
numberFormat(value) {
return value.toLocaleString()
}
{{ 式 | フィルタ }}
에서 필터 실행<p>
{{ price | numberFormat(price) }} <!-- 29,800 -->
</p>
v-bind
지시문에서 사용하는 경우<input type="text" v-bind:value="price | numberFormat(price)">
필터(글로벌)
필터는 전역적으로 정의 할 수 있습니다.
전역적으로 정의하려면
Vueインスタンス
를 생성하기 전에 작성하십시오.// グルーバルフィルタを定義
Vue.filter('numberFormat', function(value) {
return value.toLocaleString()
})
// Vueインスタンス生成
var app = new Vue({
el: '#app',
data: {
price: 29800
}
})
필터 연결
필터는 복수 접속 가능하다.
필터로 처리 된 반환 값에 대해 추가 필터를 적용 할 수 있습니다.
<p>
{{ A | filterX(A) | filterY(A) }}
</p>
필터 인수
필터로 인수를 이용한다.
예를 들면, 긴 텍스트를 생략해
...
를 말미에 부여하는 필터를 작성한다.그 때,
表示する文字列
와 末尾に付与する文字
를 인수로 지정할 수 있도록(듯이) 한다.data
옵션에 긴 문자열이 있는 text
속성을 제공합니다.text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
이어서 필터를 정의한다.
JavaScript의 메소드
substring
는 제 1 인수가 개시 위치, 제 2 인수가 추출하는 문자수를 지정한다.다음 필터는 인수로
文字列
, 抽出する文字数
및 連結する文字
를 수신합니다.Vue.filter('readMore', function(text, length, suffix) {
return text.substring(0, length) + suffix
})
실행해보십시오.
<p>
<!-- textは引数に含まないことに注意 -->
{{ text | readMore(10, '...') }} <!-- Lorem ipsu... -->
</p>
<p>
{{ text | readMore(5, '***') }} <!-- Lorem*** -->
</p>
v-bind 약어
v-bind
에는 약어가 있습니다.프로젝트 내에서 통일하는 것이 바람직하다.
다음과 같은 결과가 출력됩니다.
<!-- 完全な構文 -->
<a v-bind:href="url">
<!-- 省略記法-->
<a :href="url">
업데이트 내역
Vue.js의 기본 사용법 요약
Vue.js로 TO DO 앱 만들기
Vue.js 템플릿 제어 지시어 요약 지금 코코
Vue.js 계산 속성과 메서드의 차이
Reference
이 문제에 관하여(Vue.js 템플릿 제어 지시어 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yukiji/items/a77dd6d8dd0f194770c3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)