使用過多的偵聽器和計算屬性有什么不好的影響?
react中數(shù)據(jù)是單向綁定的,而vue中數(shù)據(jù)是雙向綁定的。為什么? 在react中,主要是通過setState 去改變state的值;而在vue中,會自動的觸發(fā)set 與get 改變屬性的值。
在vue中有兩個比較重要的知識點,computed 與 watch;
一、computed
computed 適用計算一些屬性,內(nèi)存消耗較小依賴值不變,這個也不會變。
一般情況下,我們聲明的計算屬性,調(diào)取的是getter 函數(shù),依賴于所綁定的msg 這個值,并隨之發(fā)生變化。
在計算屬性中設(shè)置set, 調(diào)用setter 函數(shù),。
此時this.changesmsg會發(fā)生改變,然后觸發(fā)setter函數(shù),設(shè)置this.msg, 最終this.changesmsg 的值是uwuw。
如果一個變量依賴于兩個變量的,比如是兩個變量的和,適用于這種方法。
computed必須在實例范圍內(nèi)
vue中setter與getter 是想數(shù)據(jù)的雙向綁定。
二、watch
vue 通過watch選項提供了一個更通用的方法,來響應(yīng)數(shù)據(jù)的變化。一般數(shù)據(jù)變化是執(zhí)行異步或開銷較大的時候,比較適合。
三、methods
在vue中,還有methods這個方法,里面一邊裝著vue中需要調(diào)用的一些方法,這也可以改變數(shù)據(jù),不過相比computed 開銷較大,每次改變都需要調(diào)用。
PS : 最后說一點,在vue中,var vm = new Vue({}) ,其中vm是局部變量 ,需要在控制臺打印的話 需要