
「Vue.js」の「フォーム部品」を利用したプログラムの作り方
今回は、前回作成した「Vue.js」のプログラムの内容を詳しく見ていきたいと思います。
まだ「Vue.js」の学習を始めたところですが、「明確な利点」がわかると学習にも意欲が湧いてきますね。
「Vueインスタンス」の仕組み
「Vue.js」では、「Vueインスタンス」というものを作り、そこに「データ」や「メソッド」を定義することができます。
作成した「Vueインスタンス」は「HTML要素」に割り当てられます。
そして、「Vueインスタンス」で定義した「データ」や「メソッド」を利用出来るのは「割り当てられたHTML要素内」に限定されます。

例えば、上図のように「Vueインスタンス」を「HTML要素1」にマウントする(割り当てる)と、「HTML要素1」内では「inputValue」と「inputValue2」を使うことができますが、「Vueインスタンス」をマウントしていない「HTML要素2」では使うことができません。
前回作成したプログラムで「Vueインスタンス」を作成する際に「elプロパティ」で「HTML要素のID属性の値」を指定していました。
let app = new Vue({
el: '#app',
data: {
inputValue: "Hello, World!",
}
})
この例では「app」という「ID属性の値」を持つ「HTML要素」に「Vueインスタンス」を割り当てています。
今回は、
<div id="app">
<input type="text" v-model="inputValue">
<p>{{ inputValue }}</p>
</div>
のように
「input要素」と「p要素」を内包している「div要素」に「ID属性の値=app」が設定されていました。
「inputValue」が使えるのはこの「div要素」の中に限定されます。
チェックボックス
「Vue.js」で「チェックボックス」も作成してみました。
今回から「Body要素」の内容のみを書いていきたいと思います。
<div id="app">
<input type="checkbox" v-model="checkStatus">Item1
<p v-if="checkStatus">※Item1がチェックされています。</p>
</div>
<script>
let app = new Vue({
el: '#app',
data: {
checkStatus: false,
}
})
</script>
このプログラムを実行すると、
のようになります。
「チェックボックス」をチェックすると「p要素のメッセージ」が表示されます。
ここで「v-if」という新しい記法が出てきました。
このように条件によって処理を分岐したい時は「v-if」を利用します。
<p v-if="checkStatus">※Item1がチェックされています。</p>
「Vueインスタンス」の「checkStatus」の値が「false」なら「p要素」は表示されず「true」なら「p要素」が表示されるようになっています。

条件を指定するだけで、「表示の切り替え」を自動で行ってくれるのでかなり負担が減りますね。
ラジオボタン
「ラジオボタン」を「Vue.js」で扱うプログラムは下記のようになります。
<div id="app">
<input type="radio" v-model="radioStatus" value="item1">Item1
<input type="radio" v-model="radioStatus" value="item2">Item2
<input type="radio" v-model="radioStatus" value="item3">Item3
<input type="radio" v-model="radioStatus" value="item4">Item4
<input type="radio" v-model="radioStatus" value="item5">Item5
<p>{{ radioStatus }}が選択されています。</p>
</div>
<script>
let app = new Vue({
el: '#app',
data: {
radioStatus: "item1",
}
})
</script>
このプログラムを実行すると、
のようになります。
「ラジオボタン」をクリックすると、「p要素」にクリックされた要素の「value属性の値」が表示されます。
「v-model」で「radioStatus」を設定し、クリックされた「ラジオボタン」の「value属性の値」が「radioStatus」に格納されています。

セレクトボックス
「セレクトボックス」を「Vue.js」で扱うプログラムは下記のようになります。
<div id="app">
<select name="type" id="data" v-model="selectStatus">
<option value="データ1">データ1</option>
<option value="データ2">データ2</option>
<option value="データ3">データ3</option>
<option value="データ4">データ4</option>
<option value="データ5">データ5</option>
</select>
<p>「{{ selectStatus }}」が選択されています。</p>
</div>
<script>
let app = new Vue({
el: '#app',
data: {
selectStatus: "データ1",
}
})
</script>
このプログラムを実行すると、
のようになります。
「セレクトボックス」から項目を選択すると、「p要素」に選択された要素の「value属性の値」が表示されます。
「v-model」で「selectStatus」を設定し、選択された「セレクトボックス」の「value属性の値」が「selectStatus」に格納されています。
