- 通过
immediate
选项,我们可以第一次监听时就执行回调函数,以便进行一些初始化操作.
- 注意: 如果我们监听的事一个对象或数组类型数据,那么
immediate
选项只会在实例初始化时执行一次回调操作,而不是在对象或数组内部数据变化时重新执行回调函数。
- 如果需要在内部数据变化时也立即执行回调函数,可以使用
deep
选项来深度监听数据变化.
<template>
<div>
<p>当前计数: {{ count }}</p>
<p>计数变化次数: {{ times }}</p>
<button @click="increment">增加计数</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0,
times: 0
};
},
watch: {
count: { // 监听 count 属性变化并立即执行回调函数
handler(newValue, oldValue) {
console.log(`count 值从 ${oldValue} 变为 ${newValue}`);
this.times++;
},
immediate: true // 页面初始化,立即执行一次回调函数!!!
}
},
methods: {
increment() {
this.count++;
}
}
};
</script>