1、區別
watch中的函數是不需要調用的
computed內部的函數調用的時候不需要加()
watch 屬性監聽 監聽屬性的變化
computed:計算屬性通過屬性計算而得來的屬性
watch需要在數據變化時執行異步或開銷較大的操作時使用
對於任何復雜邏輯或一個數據屬性在它所依賴的屬性發生變化時,也要發生變化,這種情況下,我們最好使用計算屬性computed。
computed 屬性的結果會被緩存,除非依賴的響應式屬性變化才會重新計算。主要當作屬性來使用;
computed中的函數必須用return返回最終的結果
當computed中的函數所依賴的屬性如果沒有發生改變的時候,那么調用當前函數的時候結果會從緩存中讀取
watch 一個對象,鍵是需要觀察的表達式,值是對應回調函數。主要用來監聽某些特定數據的變化,從而進行某些具體的業務邏輯操作;
2、使用場景
computed
當一個屬性受多個屬性影響的時候就需要用到computed
最典型的例子: 購物車商品結算的時候
watch
當一條數據影響多條數據的時候就需要用watch
搜索數據