Vue.jsのwatchを簡単に試してみます。
サンプルコード
例として、ボタンのクリックをカウントする処理で試してみます。
<div id="app"> <button v-on:click="counter += 1">Add 1</button> <p>{{ computedFunc }}</p> </div>
consoleを出す処理をcomputedと合わせて設定して、実行されるタイミングを確認してみます。
watchの使い方は、watchするdataの名前とそのdataに変更があった時に行う処理を定義するだけです。
var app = new Vue({ el: '#app', data: { counter: 0 }, computed: { computedFunc: function () { console.log('computed'); return this.counter; } }, watch: { counter: function () { console.log('watch'); } }, });
watchのデモページ
ボタンをクリックするとわかりますが、ページアクセス時にcomputedが実行される以外のタイミングは基本的に同じです。
computedを使用することが基本的には多いですが、computedはreturnで値を返す形になるので、処理後に値を返さない場合や非同期処理を行いたい時などにwatchを使用すると便利です。
コメントが承認されるまで時間がかかります。