computed和watch之前的区别

发布时间 2023-10-21 21:06:14作者: Ly021

1、computed依赖同步数据的变化,处于生命周期的创建阶段以及更新阶段,一般如果依赖的data不变的话,则通常不会重新计算,所以一般在创建阶段,如果依赖data是变化的,则处于更新阶段,computed的值会默认走缓存,计算属性基于它们的响应式依赖进行缓存,基于data声明过或者父组件传过来的props数据进行计算的

2、watch不支持缓存,在数据变化时,他就会触发相应的操作,watch一般支持异步操作,watch中的immediate可以强制执行同步操作,当一个属性发生变化的时候,就需要去执行相应的操作,watch监听的数据必须是data中声明的或者父组件传递过来的props中的数据,当发生变化时,会触发其他操作,函函数有两个参数:immediate和deep

immediate:组件加载立即触发回调函数

deep:深度监听,发现数据内部的变化,在复杂数据类型中使用,例如数组中的对象发生变化。需要注意的是,deep无法监听到数组和对象内部的变化。

当想要执行异步或者昂贵的操作以响应不断的变化时,就需要使用watch。

总结:computed有缓存,watch无缓存,watch更多只有观察性,对数据进行监听回调。watch一般用来监听异步函数,computed一般用来计算同步函数。