watch和computed區別


watch和computed區別

文章插圖
【watch和computed區別】以Vue為例,其watch和computed的區別如下:
1、computed支持緩存,只有依賴數據發生改變,才會重新進行計算;而watch不支持緩存,數據變,直接會觸發相應的操作 。
2、computed不支持異步,當computed內有異步操作時無效,無法監聽數據的變化;而watch支持異步 。
3、computed屬性值會默認走緩存,計算屬性是基于它們的響應式依賴進行緩存的,也就是基于data中聲明過或者父組件傳遞的props中的數據通過計算得到的值;而watch監聽的函數接收兩個參數,第一個參數是最新的值,第二個參數是輸入之前的值 。
4、如果一個屬性是由其它屬性計算而來的,這個屬性依賴其它屬性,是一個多對一或者一對一,一般用computed;而當一個屬性發生變化時,需要執行對應的操作;一對多一般用watch 。