computed
computed屬性是vue的計算屬性,是數(shù)據(jù)層到視圖層的數(shù)據(jù)轉(zhuǎn)化反映;
計算屬性是基于他們的依賴進行緩存的,只有在相關依賴發(fā)生改變時,他們才會重新求值,也就是說,只要他的依賴沒有發(fā)生變化,那么每次訪問的時候計算屬性都會立即返回之前的計算結果,不再執(zhí)行函數(shù);
區(qū)別
1.computed是響應式的,methods并非響應式。
2.調(diào)用方式不一樣,computed定義的成員是像屬性一樣訪問,methods定義的成員必須以函數(shù)形式調(diào)用。
3.computed是帶緩存的,只有依賴數(shù)據(jù)發(fā)生改變,才會重新進行計算,而methods里的函數(shù)在每次調(diào)用時都要執(zhí)行。
4.computed中的成員可以只定義一個函數(shù)作為只讀屬性,也可以定義get/set變成可讀屬性,這點是methods的成員做不到的。
5.computed不支持異步,當computed內(nèi)有異步操作時無效,無法監(jiān)聽數(shù)據(jù)的變化
注意
如果聲明的計算屬性計算量非常大的時候,而且訪問量次數(shù)非常多,改變的時機卻很小,那就需要用到computed;緩存會讓我們減少很多計算量。