vue中computed和watch區(qū)別

computed
1、computed是計算屬性,也就是依賴某個值或者props通過計算得來得數(shù)據(jù);
2、 computed的值是在getter執(zhí)行之后進(jìn)行緩存的,只有在它依賴的數(shù)據(jù)發(fā)生變化,會重新調(diào)用getter來計算;
3、 不支持異步,當(dāng)computed內(nèi)有異步操作時無效,無法監(jiān)聽數(shù)據(jù)的變化;

watch
1、watch是監(jiān)聽器,可以監(jiān)聽某一個數(shù)據(jù),然后執(zhí)行相應(yīng)的操作;
2、不支持緩存,數(shù)據(jù)變直接會觸發(fā)相應(yīng)的操作;
3、監(jiān)聽的函數(shù)接收兩個參數(shù),第一個參數(shù)是最新的值;第二個參數(shù)是輸入之前的值;
4、支持異步操作;

什么時候用computed 什么時候用watch 比較合適?

當(dāng)多個屬性影響一個屬性的時候,建議用computed,比如:

fullName(){
  return this.firstName + this.secondName
}

fullName是由firstName和secondName影響的,這種情況就適合computed;

當(dāng)一個值發(fā)生變化之后,會引起一系列的操作,這種情況就適合用watch;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容