
前回の記事「【Vue.jsプログラミング入門講座】テンプレート構文:変数の記述方法いろいろ」では、Vue.jsの基本的な変数の記述方法について説明しました。
今回は、変数でこんな書き方もできるぞというモノを紹介します。
テンプレートの記述方法は、別記事「【Vue.jsプログラミング入門講座】Vue.jsのテンプレートの記述方法いろいろ」をご覧ください。
数字の計算
Mustache記法の変数内で計算することもできます。
<サンプルソース>
<div id="app">
{{ number + 1 }}
</div>
<script src="https://unpkg.com/vue@2.5.17"></script>
<script>
new Vue({
el: '#app',
data: {
number: 2
}
})
</script>
<実行結果(ブラウザ表示結果)>
3
上記の場合、numberの値が2で、Mustache記法のタグ内で1を加算しているため、画面には計算結果の3が表示されます。
JavaScript式
Mustache記法の変数内にJavaScriptの関数(組み込み関数)も記述することができます。
<サンプルソース>
<div id="app">
{{ message.split('').reverse().join(',') }}
</div>
<script src="https://unpkg.com/vue@2.5.17"></script>
<script>
new Vue({
el: '#app',
data: {
message: 'abcde'
}
})
</script>
<実行結果(ブラウザ表示結果)>
e,d,c,b,a
上記では、messageの値「abcde」が、split('')で1文字ずつに分割されて配列に格納され、reverse()で配列が逆順になり、join(',')でカンマ区切りで結合されるため、画面には「e,d,c,b,a」と表示されます。
フィルター
フィルターを使うと変数の値を関数で加工してから表示することができます。
(余談ですが、フィルターはVue 3では廃止される予定です。)
<サンプルソース>
<div id="app">
金額は{{ price | number_format }}円です。
</div>
<script src="https://unpkg.com/vue@2.5.17"></script>
<script>
new Vue({
el: '#app',
data: {
price: 100000000
},
filters: {
number_format: function(number) {
if(isNaN(number)) {
return 0
}
//toLocaleString() メソッドは、この数値を表す言語依存の文字列を返します。
return number.toLocaleString()
}
}
})
</script>
<実行結果(ブラウザ表示結果)>
金額は100,000,000円です。
Mustache記法の「|」よりも前の変数が、「|」より後ろの自作関数number_formatで処理されてから、画面に表示されます。
number_format関数は、数字を3桁区切りにする関数なので、
上記の表示結果は、「100,000,000」になります。
今回は以上です。
Vue.jsプログラミング入門講座 〜 全記事一覧 〜
- Vue.jsのテンプレートの記述方法いろいろ
- テンプレート構文:変数の記述方法いろいろ
- 現在のページ:テンプレート構文:変数の記述方法いろいろ(パート2)
- メソッド