在做事件處理的時候,當事件被觸發,資料異動了,通常這時候我們會需要監聽器去聽到觸發事件的啟動並去呼叫對應的處理器,並讓它做事情。
今天我們將介紹Vue在做事件處理的時候,一個扮演重要角色的options屬性:watch
。
watch
(監聽器)下面我們應用v-model
與watch
舉一個範例來寫時間單位的轉換。
<div id="app">
<p>g(公克):<input type="text" v-model="g"></p>
<p>kg(公斤):<input type="text" v-model="kg"></p>
<p>t(公噸):<input type="text" v-model="t"></p>
</div>
var vm = new Vue ({
el: '#app',
data: {
g: 0,
kg: 0,
t: 0
},
watch: {
g: function(value) {
this.g = value;
this.kg = value / 1000;
this.t = value / 1000 / 1000;
},
kg: function(value) {
this.g = value * 1000;
this.kg = value;
this.t = value / 1000;
},
t: function(value) {
this.g = value * 1000 * 1000;
this.kg = value * 1000;
this.t = value;
}
}
});
watch
vs computed
watch
computed
以上就是Vue的watch
的用途與用法,watch
雖然好用,但如果function太多,資料關聯也愈複雜的話,或許就可以考慮用computed
寫寫看了。