watch和computed都是以Vue的依赖追踪机制为基础的,它们都试图处理这样一件事情:当某一个数据(称它为依赖数据)发生变化的时候,所有依赖这个数据的“相关”数据“自动”发生变化,也就是自动调用相关的函数去实现数据的变动。
computed:
例如:
computed:{
fullName:
function
() {
return
aa
}
}
在用的时候,用this.fullName去取用,就和取data一样(不要当成函数调用!!)
watch:类似于监听机制+事件机制:
例如:
watch: {
firstName:
function
(val) {
this
.fullName = val
}
}
firstName这个变量的改变是这个特殊“事件”被触发的条件,而firstName对应的函数就相当于监听到事件发生后执行的方法
watch和computed的对比
1.watch擅长处理的场景:一个数据影响多个数据
2.computed擅长处理的场景:一个数据受多个数据影响