watch侦听器:
(1)监听一个数据,当数据变化时,触发相应操作
(2)支持异步监听
(3)接受两个参数,第一个是最新的值,第二个是变化之前的值。
computed:计算属性
(1)缓存性,属性得到的结果会被缓存,当依赖的属性发生变化时才会重新计算
(2)必须有一个return返回值
(3)不支持异步,如有异步,无法监听数据的变化
(4)如果属性值是函数,默认使用get方法,函数的返回值就是属性的属性值。还有一个set方法,当数据变化时就会调用set方法。
computed与watch的使用场景:
computed:多对一,多个数据影响一个数据。当需要进行数值计算,且依赖于其它数据时,可以利用 computed 的缓存特性,避免每次获取值时都要重新计算。
watch:是一对多,一个数据发生变化,执行相应操作会影响多个数据。当需要在数据变化时执行异步或开销较大的操作时,应该使用 watch,使用 watch 选项允许执行异步操作 ( 访问一个 API ),限制执行该操作的频率,并在得到最终结果前,设置中间状态。这些都是计算属性无法做到的。