【Vue.js】v-bindとは?使い方をサンプルコードで解説
手っ取り早くこのページのサンプルコードを検証するには、下記のvueライブラリを事前に読み込んでおいてください。
v-bindとは?属性を動的に設定できる機能
v-bindは、要素に含まれる属性(href=””など)を動的に設定・変更することが出来る設定方法です。
サンプルコード
<div id="app-1"> <a target="_blank" v-bind:href="link">{{ link }}</a> <input type="button" @click="link = 'https://google.com/'" value="リンクをグーグルに変更" /> <input type="button" @click="link = 'https://yahoo.co.jp/'" value="リンクをヤフーに変更" /> </div> <script> new Vue({ el: '#app-1', data: { link : '#', } }); </script>
ボタンを押すと、「link」の値を書き換えます。
すると、v-bindで設定したhrefは、「link」を参照しているため、ボタンクリックで代入されたURLに遷移できます。
実際にクリックしてお試しください。
v-bind:の「v-bind」は省略できる
「v-bind:」の「v-bind」の記述は省略できます。
サンプルコード
<div id="app-2"> <a target="_blank" :href="link">{{ link }}</a> <input type="button" @click="link = 'https://google.com/'" value="リンクをグーグルに変更" /> <input type="button" @click="link = 'https://yahoo.co.jp/'" value="リンクをヤフーに変更" /> </div> <script> new Vue({ el: '#app-2', data: { link : '#', } }); </script>
v-bindで文字列と変数を使用する例
v-bindで設定する中身は、JavaScriptの記述と同様に書く必要があります。
なので、変数と文字列を合わせて使用したい場合は、シングルクオーテーションで囲み、「+」などを使用して連結させる必要があります。
下記は、配列で生成したチェックボックスに、それぞれ対応するidとlabelをv-bindで設定した例です。
サンプルコード
<div id="app-3"> <span v-for="(val, key) in checklistAry"> <input type="checkbox" v-model="checksampleAry" v-bind:value="val" :id="'check' + key" /> <label :for="'check' + key">{{ val }}</label> </span> <p>checksampleAryの値は「{{ checksampleAry }}」です。</p> </div> <script> new Vue({ el: '#app-3', data: { checklistAry : ['hoge', 'fuga', 'piyo'], checksampleAry : [], } }); </script>
checksampleAryの値は「{{ checksampleAry }}」です。
v-bind:classの特殊記法
v-bind:classで設定する場合、{}で囲うオブジェクト形式の指定が可能です。(通常の記述も可能です)
{クラス名 : 真偽値}という形で設定し、真偽値によってクラスの付与を切り替えることが可能です。
オブジェクト形式で設定できるので、下記のように複数の設定が可能です。
サンプルコード
<style> .red{ color: red; } .bold{ font-weight: bold; } </style> <div id="app-4"> <p :class="{red : redcheck, bold : boldcheck}">チェックによって文字が変わります</p> <input type="checkbox" v-model="redcheck" /> 赤くする <input type="checkbox" v-model="boldcheck" /> 太くする </div> <script> new Vue({ el: '#app-4', data: { redcheck : false, boldcheck : false, } }); </script>
チェックによって文字が変わります
赤くする 太くするv-bind:styleの特殊記法
v-bind:styleで設定する場合も、{}で囲うオブジェクト形式の指定が可能です。(通常の記述も可能です)
{style名 : 値}という形で設定し、style名と値を紐づけることが出来ます。
こちらもオブジェクト形式で設定できるので、下記のように複数の設定が可能です。
サンプルコード
<div id="app-5"> <p :style="{color : radiosample}">ラジオボタンによって文字が変わります</p> <input type="radio" value="black" v-model="radiosample" /> black <input type="radio" value="blue" v-model="radiosample" /> blue <input type="radio" value="red" v-model="radiosample" /> red <input type="radio" value="pink" v-model="radiosample" /> pink <input type="radio" value="gray" v-model="radiosample" /> gray </div> <script> new Vue({ el: '#app-5', data: { radiosample : 'black', } }); </script>
ラジオボタンによって文字が変わります
black blue red pink gray以上、v-bindとは?使い方をサンプルコードで解説、でした。
ディスカッション
コメント一覧
まだ、コメントがありません