面试中我们经常会被问道watch和computed的区别,今天我们就讲一讲他们到底是用来做什么的,到底有什么区别
computed是做什么的
computed:{
Name:function(){
return this.firstname+this.lastname;
}
}
computed计算属性是自动监听依赖值的变化,从而动态的返回内容。 监听是一个过程,即监听的值变化时,可以触发一个回调,并做一些事情,如上图代码,当firstname和lastname发什么变化的时候,Name的值就会被触发
watch是做什么的
watch:{
num:function(val,oldval){
console.log(val,oldval);
}
}
watch监听是你定义的变量,当定义的变量的值发生变化时,调用对应的方法 如上图代码,当num的值发生变化时,就会调用num的方法,方法里面的形参对应的是num的新值和旧值
两者的区别
- 用法的区别:计算属性:当只需要动态值时;watch监听:需要知道值改变后执行的业务逻辑
- 声明的区别:计算属性里面的值,本身就是声明;watch监听的值,需要在data里面声明