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;