在 Vue 中,computed
和watch
都是用于观察和响应数据变化的属性,但它们的工作方式和运用场景有所不同。
computed
:是一个计算属性,依赖于其他属性,并且computed
的值有缓存。只有它依赖的属性值(响应式依赖)发生变化,下一次获取computed
的值时才会重新计算computed
的值。watch
:更多的是【观察】的作用,类似于某些数据的监听回调,每当监听的数据发生变化时,都会执行回调进行后续操作。
运用场景:
computed
:当我们要进行数值计算,并且依赖于其他数据时,这时应该使用computed
,因为利用computed
的缓存特性,可以避免每次获取值时都重复计算。watch
:当我们在数据发生变化时执行异步或开销较大的操作时,应该使用watch
,使用watch
选项允许我们执行一步操作(访问一个 API),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这些是computed
(计算属性)无法实现的。