computed : 对多个变量或者对象进行处理后返回一个结果值,也就是多个变量中的某一个值发生了变化,则我们监控的这个值也就会发生变化
watch:
watch是用来响应data中的数据的变化,一般用于异步或者开销较大的操作
当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,此时就需要deep属性对对象进行深度监听
obj:{
handler(newval){
console.log(newval);
},
deep:true, // 深度监听,可以监听对象的属性的变化
immediate: true // 监听初始的值
},
watch与computed的区别:
相同点: 两者都能达到根据data中数据变化,就触发函数的结果。
计算属性是基于他们的依赖进行缓存的, 多用于处理多个变量返回一个值
不同点:watch多用于异步处理或者逻辑比较复杂的处理。比如实时搜索效果