1、功能上:
computed是计算属性
watch是监听一个值的变化,然后执行对应的回调
2、是否调用缓存:
computed中的函数所依赖的属性没有发生变化,那么调用当前的函数的时候会从缓存中读取
watch在每次监听的值发生变化的时候都会执行回调。
3、是否调用return:
computed中的函数必须要用return返回
watch中的函数不是必须要用return
4、监听:
computed默认第一次加载的时候就开始监听
watch默认第一次加载不做监听,如果需要第一次加载做监听,添加immediate属性,设置为true(immediate:true)
5、使用场景:
computed:当一个属性受多个属性影响的时候,比如结算
watch:当一条数据影响多条数据的时候,比如搜索
watch: {
info: {
handler(n, o) {
console.log(n, o)
},
deep: true,
immediate: true
},
},
computed: {
getAll() {
return this.first + this.last
}
},