基礎からメモ: Vue.js CH2-p53 リアクティブなデータ
Vue.js のキモはリアクティブデータ
Vueインスタンスのdata
には、文字列、配列、オブジェクトなどを登録できる。
[main01.js]
let state = { count: 0 }; var app = new Vue({ el: '#app', data: { value: { message: "Hello Vue.js!", num: 0 }, state: state }, methods: { handleClick: function(event){ state.count++; } } })
また、上のstate
のようにインスタンス定義の外(定義の前)で定義されたデータも、Vueデータとして取り込むことができる。
[index01.html]
<div id="app"> <p>Message: {{ value.message }}</p> <p><input v-model="value.message"></p> <p>Number: {{ value.num }}</p> <p>Count: {{ state.count}}</p> <button v-on:click="handleClick">Count+!</button> </div>
このHTMLのボタンはVueインスタンスのhandleClick
メソッドを呼び出すので、クリックするたびにstate.count
が1ずつ増加する。
またコンソールからapp.value.num++
とかapp.state.count++
とかすれば、それぞれの数値が変化する。
なおdata
オプションのプロパティは後から追加できない。あらかじめプロパティ名を決めて初期値や空データを代入しておく必要がある。