watch属性监听Vue实例中的所有变量和计算结果
监听data中的自定义变量
watch: { num(newVal, oldVal) { // newVal 变量num改变后的值 // newVal 变量num改变前的值 // 当变量num发生改变,执行当前回调 }, }, data() { return { num: 1, }; }
监听computed计算属性的计算结果
watch: { site(newVal, oldVal) { // newVal 计算属性site计算后的值 // newVal 计算属性site计算前的值 // 当计算属性site的计算结果发生改变,执行当前回调 }, }, computed: { site: { get() { return this.num; }, }, },
watch监听属性辅助选项
选项:deep
watch: { obj: { handler(newVal, oldVal) { console.log("newVal ===>>>", newVal); console.log("oldVal ===>>>", oldVal); }, deep: true, }, }, data() { return { obj: { name: "张三", sex: "18", }, }; }
deep选项为true时, 可进行指针的深度监听,不只是对象,数组也是同样会被深度监听
选项:immediate
watch: { obj: { handler(newVal, oldVal) { console.log("newVal ===>>>", newVal); console.log("oldVal ===>>>", oldVal); }, deep: true, immediate: true, }, }
immediate选项为true时,当前监听回调函数会在Vue实例加载时立即触发回调