vue中关于对象的监听与数组的监听
数组:
数组可监听到的方法:'push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'
如果是根据索引改变值,需要使用vue.$set来改变。
对象:
监听一个对象的话,首先要知道对象的删除或者新增是监听不到的。需要使用vue.$set或者vue.$delete
其次如果监听一个深层对象,需要使用deep:true方法,但是watch监听到这个对象的newval与oldval是相同的。(原因:侦听一个响应式对象或数组将始终返回该对象的当前值和上一个状态值的引用。为了完全侦听深度嵌套的对象和数组,可能需要对值进行深拷贝。这可以通过诸如 lodash.cloneDeep 这样的实用工具来实现。)
例如:计算属性深拷贝要坚挺的值,监听这个计算属性。这时候你也不用写deep位true了。解决了新旧值相同的问题,十分方便
如果你监听的事对象中的某一个值,你在watch中可以这么些 “obj.xx” 这时候监听的只有那一个值
长风破浪会有时,直挂云帆济沧海