基礎からメモ: Vue.js CH2-p56 Mustache記法の注意点
Mustache記法を使う際の注意点をいくつか。
記法内で計算ができる。
{{ 10 + 10 }}
ただし式は書けるが文は書けない。
{{ let foo = 10 }}
これはエラーになる。
vue.js:597 [Vue warn]: Error compiling template: - avoid using JavaScript keyword as property name: "let" Raw expression: {{ let foo = 10 }}
長めの式はテンプレートが冗長になる。算出プロパティを活用すべき。
{{ message.value.length >= 10 ? 'long!' : 'short!' }}
フィルタを使うことで簡潔に書けることもある。
{{ Math.round(3.14) }}
Mustache記法は主にテキストコンテンツのための記法。HTML属性には使えない。
<input type="text" value="{{ message.value }}">
エラーになる。
[Vue warn]: Error compiling template: - value="{{ message.value }}": Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div id="{{ val }}">, use <div :id="val">.
警告に書いてあるように、この場合はv-bind
を使う。省略記法は「:」
<p><input type="text" v-bind:value="message.value"></p> <!-- v-bind の省略記法--> <p><input type="text" :value="message.value"></p> <!-- v-bindの値の中でも簡単な計算式が使える。ただしやはり属性値なのでクオートで囲むのは必須 --> <p><input type="text" v-bind:value="2 + 5"></p>
- Mustache記法には式は書ける。文は書けない。
- Mustache記法はHTML属性には使えない。属性には
v-bind
を使う。