Vue 中的watch主要用于监听 data 值,并执行一些自定义操作。
若监听的 data 发生变化,则执行这些操作,反之则不执行。
问题来了
当watch监听一个data,arr
当arr从[1]变为[],watch事件触发,当arr从[]变为[],watch不会出发
因为 [] === [],为false
所以觉得这边很奇怪
请明白其中原因的大佬解释一下为何会发生这种原因。
不胜感激
Vue 中的watch主要用于监听 data 值,并执行一些自定义操作。
若监听的 data 发生变化,则执行这些操作,反之则不执行。
问题来了
当watch监听一个data,arr
当arr从[1]变为[],watch事件触发,当arr从[]变为[],watch不会出发
因为 [] === [],为false
所以觉得这边很奇怪
请明白其中原因的大佬解释一下为何会发生这种原因。
不胜感激
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
[] == [] 当两个值都是对象 (引用值) 时, 比较的是两个引用值在内存中是否是同一个对象. 因为此 [] 非彼 [], 虽然同为空数组, 确是两个互不相关的空数组, 自然 == 为 false.