VUE----watch和compute

1.computed:計算屬性
在這裏插入圖片描述
computed是一個對象,而裏面需要計算的屬性是一個函數的返回值。計算屬性默認只有getter,可以在需要的時候自己設定setter。在data中沒有直接聲明出要計算的變量,也可以直接在computed中寫入。
computed適用場景
在這裏插入圖片描述
在這裏插入圖片描述
2.computed與methods
在這裏插入圖片描述
區別:計算屬性是基於它們的響應式依賴進行緩存的。只在相關響應式依賴發生改變時它們纔會重新求值。這就意味着只要 message 還沒有發生改變,多次訪問 reversedMessage 計算屬性會立即返回之前的計算結果,而不必再次執行函數。相比之下,每當觸發重新渲染時,調用方法將總會再次執行函數。
爲什麼需要緩存?假設有一個性能開銷比較大的計算屬性 A,它需要遍歷一個巨大的數組並做大量的計算。然後可能有其他的計算屬性依賴於 A 。如果沒有緩存,將不可避免的多次執行 A 的 getter!如果不希望有緩存,請用方法來替代
3.watch
在這裏插入圖片描述
watch與computed相似,也是一個對象,偵聽的屬性,是通過一個方法的返回值。在偵聽的屬性對應的函數中的參數,爲當前偵聽屬性的值。使用 watch 選項允許執行異步操作等,並在我們得到最終結果前,設置中間狀態。這些都是計算屬性無法做到的。如果在data中沒有相應的屬性的話,是不能watch的
在這裏插入圖片描述
例如:
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章