Vue 中 watch 不会触发的情况

Vue 中的watch主要用于监听 data 值,并执行一些自定义操作。

若监听的 data 发生变化,则执行这些操作,反之则不执行。

问题来了

当watch监听一个data,arr

当arr从[1]变为[],watch事件触发,当arr从[]变为[],watch不会出发

因为 [] === [],为false

所以觉得这边很奇怪

请明白其中原因的大佬解释一下为何会发生这种原因。

不胜感激


蓝山帝景
浏览 4908回答 2
2回答

慕码人2483693

[] == [] 当两个值都是对象 (引用值) 时, 比较的是两个引用值在内存中是否是同一个对象. 因为此 [] 非彼 [], 虽然同为空数组, 确是两个互不相关的空数组, 自然 == 为 false.

缥缈止盈

性能优化,如果数据没发生变化也要执行你在watch中的逻辑,这样框架设计明显不合理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript