当用户指定了watch中的deep属性为true时,如果当前监控的值是数组类型。会对对象中的每一项进行求值,此时会将当前watcher存入到对应属性的依赖中,这样数组中对象发生变化时也会通知数据更新。
但是,deep的意思就是深入观察,监听器会一层层的往下遍历,给对象的所有属性都加上这个监听器,但是这样性能开销就会非常大了,任何修改obj里面任何一个属性都会触发这个监听器里的 handler。
所以,可以这样改进:优化,我们可以是使用字符串形式监听。
参考:https://www.axihe.com/focus/vue/07.html
https://www.cnblogs.com/yesu/p/9546458.html
网友评论