watch 会初始化监听,不会被缓存,watch需要在数据变化时执行异步或开销较大的操作时使用。
computed需要调用才执行,不可以初始化,属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。当computed中的函数所依赖的属性如果没有发生改变的时候,那么调用当前函数的时候结果会从缓存中读取。
computed多条数据影响一条数据。
watch一条数据影响多条数据。
-
computed有缓存,watch没有缓存
-
computed不支持异步,watch支持异步
-
computed需要返回值,watch不需要返回值
-
computed的值不能在data中定义,watch需要在data中定义