今回の記事は、
- これからVue.jsを始めてみたい
- v-modelの使い方が知りたい
- チェックボックスでv-modelを使ってみたい
という方に向けた記事になっています。
なお、Vue.jsの概要や特徴については以下の記事にて詳しく解説していますので、こちらもぜひご覧ください。
今回の記事は、 最近よく聞くけど、Vue.jsってなに?これからVue.jsを始めてみたいVue.jsの特徴やメリットが知りたい というお悩みをお持ちの方に向けた記事になっています。 ReactやAngular、そしてV[…]
フリーランス案件を探すならこのエージェント!
転職を考えているならこのエージェント!
v-modelディレクティブとは?
まず初めに、v-modelディレクティブの概要についておさらいしておきましょう。
v-modelディレクティブは、主にformのinput / textarea などの要素に使用され、View側(HTML)とModel側(Vue.js)との間でデータの双方向バインディングを実現する仕組みでしたね。
ここで出てきた「双方向バインディング」というのは、View側とModel側とで常にデータを繋ぎ続ける(バインドし続ける)ということであり、具体的に申し上げると、「HTML上で変更したデータがVue.js側にも反映され、逆に何かしらのアクションでVue.js側のデータが変更された場合にはその変更がHTML側にも反映される」ということです。
このv-modelディレクティブを使用することで、フォームの入力値を簡単に管理することができ、これまでの素のJavascriptやjQueryでのやり方と比べて開発効率を格段にあげることができます。
基本的な使い方や実際の具体例については以下の記事にて詳しく解説していますので、ぜひこちらもご覧くださいね。
今回の記事は、 これからVue.jsを始めてみたいv-modelの使い方が知りたい双方向バインディングを使ってみたい という方に向けた記事になっています。 なお、Vue.jsの概要や特徴については以下の記事[…]
それでは早速、チェックボックスに対してv-modelディレクティブを使用する方法を見ていきましょう。
【Vue.js】チェックボックスでv-modelを使用する方法
通常のinputタグに使用する場合と比べて注意すべき点は、「Vueオブジェクトのdataプロパティを配列にする」ということのみです。
それ以外は通常の使い方と変わらないため、それほど苦労することなく使って頂けるかと思います。
では早速、実際のコードを見ながらその挙動を確認していきましょう。
実装コード
<div id="app1">
<div v-for="language in languages">
<input type="checkbox" v-model="selectedLanguages" :value="language.name" :id="language.id">
<label :for="language.id">{{ language.name }}</label>
</div>
<p v-show="selectedLanguages.length">現在選択されているのは{{ selectedLanguages.join(", ") }}です。</p>
</div>
<script>
let app1 = new Vue ({
el: "#app1",
data: {
input1: ""
}
})
</script>
動作確認用
現在選択されているのは{{ selectedLanguages.join(", ") }}です。
上記のようにして、値を格納したいdataプロパティ(ここではselectedLanguages
)の初期値を配列にしておくことで、その値をv-modelディレクティブに設定するだけで、チェックボックスの選択値を管理することができます。
この点のみ注意しておけば、通常のv-modelディレクティブと同じ感覚で使用することができますので、とても便利であることがお分かりいただけたかと思います。
最後に
さて、ここまでチェックボックスでv-modelディレクティブを使用する方法についてご紹介してきましたがいかがでしたか?
「格納先のdataプロパティを配列にしておく」という点だけ注意しておけば通常の使い方と変わりはありません。
このv-modelディレクティブは、Vue.jsでWebアプリを作成する際に避けて通れない道と言っても過言ではないため、ぜひこの機会にマスターしておいてくださいね。
このブログを通じて少しでも「傍(はた)を楽(らく)にする」ことができていれば嬉しく思います。
最後まで読んで頂きありがとうございました。