问题: 在vue项目中,现在遇到这样一个问题; 从父组件接受一个对象obj1,并将这个对象赋值给子组件的obj2;obj2是一个表单的各项值,在开始的时候,我是通过watch监听整个obj2的变化,要获取obj2的值;但是现在我接受从父组件传递过来的obj1值时;只是在第一次赋值的时候,监听到了obj2的变化,当我更改里面属性的时候,后来发现我是对整个obj2进行监听(因为obj2已经通过了( Vue.set(object, key, value)
方法向嵌套对象添加响应式属性),所以这里只会监听里面属性的增加和减少(),并不会对属性的值更改进行监听;
显而易见: 我需要重新监听一个对象里面每一个属性值的变化:
查阅资料发现:watch中的这两个选项deep
、immediate
选项:deep
在选项参数中指定 deep: true
,可以监听对象中属性的变化。
选项:immediate
在选项参数中指定 immediate: true, 将立即以表达式的当前值触发回调,也就是立即触发一次。
watch: {
obj: {
handler(val, oldVal) {