這篇文章將為大家詳細講解有關(guān)vue中computed和watch有哪些區(qū)別,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供武邑網(wǎng)站建設(shè)、武邑做網(wǎng)站、武邑網(wǎng)站設(shè)計、武邑網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、武邑企業(yè)網(wǎng)站模板建站服務(wù),10余年武邑做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
區(qū)別:計算屬性computed支持緩存,只有依賴數(shù)據(jù)發(fā)生改變,才會重新進行計算;不支持異步,當computed內(nèi)有異步操作時無效,無法監(jiān)聽數(shù)據(jù)的變化。而監(jiān)聽屬性watch不支持緩存,數(shù)據(jù)變,直接會觸發(fā)相應(yīng)的操作;支持異步。
watch顧名思義,用于監(jiān)聽數(shù)據(jù)變化,其中可以監(jiān)聽的數(shù)據(jù)來源有三部分:props、data、computed內(nèi)的數(shù)據(jù);watch提供兩個參數(shù)(newValue,oldValue),第一個參數(shù)是新值,第二個參數(shù)保存舊值;
computed用于處理復(fù)雜的邏輯運算,主要和methods儲存方法來進行區(qū)分;methods儲存方法,,computed儲存需要處理的數(shù)據(jù)值;methods每次都會調(diào)用,computed有緩存機制,只有改變時才執(zhí)行,性能更佳;
vue中computer與watch區(qū)別:
計算屬性computed :
1. 支持緩存,只有依賴數(shù)據(jù)發(fā)生改變,才會重新進行計算
2. 不支持異步,當computed內(nèi)有異步操作時無效,無法監(jiān)聽數(shù)據(jù)的變化
3.computed 屬性值會默認走緩存,計算屬性是基于它們的響應(yīng)式依賴進行緩存的,也就是基于data中聲明過的數(shù)據(jù)通過計算得到的
4. 如果一個屬性是由其他屬性計算而來的,這個屬性依賴其他屬性,是一個多對一或者一對一,一般用computed
5.如果computed屬性屬性值是函數(shù),那么默認會走get方法;函數(shù)的返回值就是屬性的屬性值;在computed中的,屬性都有一個get和一個set方法,當數(shù)據(jù)變化時,調(diào)用set方法。
監(jiān)聽屬性watch:
1. 不支持緩存,數(shù)據(jù)變,直接會觸發(fā)相應(yīng)的操作;
2.watch支持異步;
3.監(jiān)聽的函數(shù)接收兩個參數(shù),第一個參數(shù)是最新的值;第二個參數(shù)是輸入之前的值;
4. 當一個屬性發(fā)生變化時,需要執(zhí)行對應(yīng)的操作;一對多;
關(guān)于vue中computed和watch有哪些區(qū)別就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。