computed會(huì)緩存函數(shù)返回的結(jié)果,只要函數(shù)涉及到的變量不發(fā)生改變,下次再訪問(wèn)時(shí)就會(huì)直接返回結(jié)果,不再執(zhí)行函數(shù)。我們一般把 computed看做一種屬性,而不是一個(gè)函數(shù)。
watch則是監(jiān)聽(tīng)某個(gè)屬性,當(dāng)監(jiān)聽(tīng)的屬性發(fā)生變化時(shí)執(zhí)行相應(yīng)的函數(shù)。比較常見(jiàn)的像輸入提示就是監(jiān)聽(tīng)輸入的值的變化來(lái)請(qǐng)求服務(wù)器。watch比 computed更通用,computed可以實(shí)現(xiàn)的功能 watch也可以實(shí)現(xiàn)但是一些功能使用 computed實(shí)現(xiàn)更方便。
總的來(lái)說(shuō) computed一般執(zhí)行計(jì)算的操作(表達(dá)式計(jì)算、拼接字符串等),watch一般執(zhí)行監(jiān)聽(tīng)的操作(輸入值改變、props改變等)。
參考:
Vue的computed和watch的細(xì)節(jié)全面分析:https://segmentfault.com/a/1190000012948175?utm_source=tag-newest
Computed Properties and Watchers
:https://vuejs.org/v2/guide/computed.html#Computed-Caching-vs-Methods