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;来实现,具体代码和演示结果大家可以尝试一下。
原文:https://www.cnblogs.com/Leo-Do/p/13525601.html