watch在最初綁定的時候是不會執行的,只有綁定的值變化時才會響應監聽,如果我們加上immediate: true;則可以實現返回調用方法,類似於鈎子函數完成的功能。
<div id="main">
<p>obj.a: {{obj.a}}</p>
<p>obj.a: <input type="text" v-model="obj.a"></p>
</div>
new Vue({
el: '#main',
data: {
obj: {
a: 123
}
},
watch: {
obj: {
handler(newValue, oldValue) {
console.log('頁面初始即調用');
},
immediate: true
}
}
})
vue是檢測不到對象屬性的添加和刪除的,如果我們想監聽js對象屬性的變化,我們可以用deep: true;來實現,具體代碼和演示結果大家可以嘗試一下。
