見出し画像

Vue.jsでwebアプリを作ろう#03(入力フィールド)

データと要素の値をバインディングする

これから入力フィールドを作って、入力した値がタイトルやタスクリストに反映されるUIを作っていきます。

これを双方向にデータバインディングするという意味になります。データバインディングというのは data と UI を結び付けるという意味で、双方向というのは data が更新されると UI の値が更新されて、 UI を更新すれば data が更新されるという意味になります。

前項でdataを保持する変数を設定して、その値を名前のタイトルに表示させました。今度は、フォームに入力した値をタイトルに反映させるものを作っていきます。

前項:Vue.jsでwebアプリを作ろう#02(準備編)
https://note.com/hamasan918/n/nf2568cfaca38

まずは、フォームの入力欄を作ります。前項のnameの見出しの下にフォーム入力欄を作ります。

<div id="app">
	<h2>{{ name }}</h2>
    <p><input type="text" v-model="name"></p>       
</div>

inputタグにv-modelという値にname という変数を与えます。このv-modelの値をnameとすることで、入力した値が、h2の値nameという変数に値を渡してくれる役割になっています。

※前項で下記のようにdataの初期値をHamasanとしていたので、そのnameの値が入力欄の初期値になります。

<script>
		var app = new Vue({
	        el: '#app',
	        data: {
	            name: 'Hamasan'
	        }
   	}) ;
</script>

表示を確認してみます。

スクリーンショット 2020-03-29 16.54.03

入力欄に名前を入力すると見出しの名前も変わります。

スクリーンショット 2020-03-29 16.54.36

v-modelを使って、入力フィールドとタイトルを双方向にバインディングしていきました。

次回からTodoリストを作っていこうかと思います。

この記事が気に入ったらサポートをしてみませんか?