vue3 watch 一个不确定的值,怎么弄

某函数返回值有 a 时 监听aa,b 分别监听 a b,
一个没给就不要监听,




监听固定的  好办,,当这样不确定时怎么弄???感觉没法写了
watch(a,(newValue,oldValue)=>{
   console.log('a发生变化')
})




    import _ from 'lodash'
    import {reactive, ref, watch} from 'vue';

    // d为某函数的返回值
    const d = reactive({
    })
    watch(
            () => _.cloneDeep(d),
            (d, prevD) => {
                console.log(d, prevD)
                if (d.a !== prevD.a) {
                    console.log('a发生变化', d.a, prevD.a) // a发生变化 test-a undefined
                }
                if (d.b !== prevD.b) {
                    console.log('b发生变化', d.b, prevD.b)
                }
            }
    )

    d.a = 'test-a'

vue不太会,提个思路,是否可以把a,b放到一个对象里去监听这个对象,然后通过判断a、b的值是否为空来决定怎么处理相关的数据?

VUE在A监听里面改变B监听,B监听再次改变监听不到值的问题
https://blog.csdn.net/weixin_45559135/article/details/115128843

记返回值为obj

data (){
return {
obj:{}//每次给它重新赋值
},
watch:{
obj: {
handler (newValue,oldValue){
},
deep:true
}
}
}

换一种思路,去监听 这个函数的返回值 {a,b}