一、watch
为需要观察的数据创建并收集watcher(依赖)
,当数据改变时通知到watcher
将新值和旧值传递给用户自己定义的回调函数(handler )。
二、computed
为什么计算属性有缓存功能?因为当计算属性经过计算后,内部的标志位会表明已经计算过了,再次访问时会直接读取计算后的值;
为什么计算属性内的响应式数据发生变更后,计算属性会重新计算?因为内部的响应式数据会收集computed-watcher
,变更后通知计算属性要进行计算,也会通知页面重新渲染,渲染时会读取到重新计算后的值。
- 请问
computed
属性和watch
属性分别什么场景使用? - 当模板中的某个值需要通过一个或多个数据计算得到时,就可以使用计算属性,还有计算属性的函数不接受参数;监听属性主要是监听某个值发生变化后,对新值去进行逻辑处理。
computed和watch不能一起用,因为watch是监听值,而computed是去对这个值进行修改(也就是计算),监听值改变后,computer的值不会如你所愿而改变。
- watch用于观察和监听页面上的vue实例,当你需要在数据变化响应时,执行异步操作,或高性能消耗的操作,那么watch为最佳选择