watch 需要侦听特定的数据源,并在单独的回调函数中执行副作用
watch第一个参数监听源
watch第二个参数回调函数cb(newVal,oldVal)
watch第三个参数一个options配置项是一个对象{
immediate:true //是否立即调用一次
deep:true //是否开启深度监听
}
监听Ref 案例
import { ref, watch } from 'vue'let message = ref({nav:{bar:{name:""}}})watch(message, (newVal, oldVal) => {console.log('新的值----', newVal);console.log('旧的值----', oldVal);},{immediate:true,deep:true})
监听多个ref 注意变成数组啦
import { ref, watch ,reactive} from 'vue'let message = ref('')let message2 = ref('')watch([message,message2], (newVal, oldVal) => {console.log('新的值----', newVal);console.log('旧的值----', oldVal);})
监听Reactive
使用reactive监听深层对象开启和不开启deep 效果一样
import { ref, watch ,reactive} from 'vue'let message = reactive({nav:{bar:{name:""}}})watch(message, (newVal, oldVal) => {console.log('新的值----', newVal);console.log('旧的值----', oldVal);})
案例2 监听reactive 单一值
import { ref, watch ,reactive} from 'vue'let message = reactive({name:"",name2:""})watch(()=>message.name, (newVal, oldVal) => {console.log('新的值----', newVal);console.log('旧的值----', oldVal);})
————————————————
版权声明:本文为CSDN博主「小满zs」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq1195566313/article/details/122797990
