computed会缓存函数返回的结果,只要函数涉及到的变量不发生改变,下次再访问时就会直接返回结果,不再执行函数。我们一般把 computed看做一种属性,而不是一个函数。
watch则是监听某个属性,当监听的属性发生变化时执行相应的函数。比较常见的像输入提示就是监听输入的值的变化来请求服务器。watch比 computed更通用,computed可以实现的功能 watch也可以实现但是一些功能使用 computed实现更方便。
总的来说 computed一般执行计算的操作(表达式计算、拼接字符串等),watch一般执行监听的操作(输入值改变、props改变等)。
参考:
Vue的computed和watch的细节全面分析:https://segmentfault.com/a/1190000012948175?utm_source=tag-newest
Computed Properties and Watchers
:https://vuejs.org/v2/guide/computed.html#Computed-Caching-vs-Methods