vue中watch,computed,mehtod執行順序

在vue中數據存在的方式有:data , props , computed html

因爲vue的雙向數據綁定,自動更新數據的機制,在數據變化後,對此數據依賴 的全部數據,watch事件都會被更新、觸發。因此,只有數據自己變化了,依賴項纔會改變。vue

computed:只有當computed 屬性被使用後,纔會執行computed的代碼,若組件中未被使用,computed代碼不會執行。雙向綁定

執行順序:htm

    頁面加載時:事件

    onload: watch(immediate:true) --> computed --> watch(默認computed:false)io

    交互改變數據時:event

    event : watch --> computed --> method model

    注:watch中的數據設置immediate:true時,在組件加載時將馬上執行(v-modal雙向綁定的數據值都已更新,纔會執行watch方法)。引用

           另外,computed數據在method中和在html中被使用時,代碼被執行的順序稍有不一樣。經過打斷點發現,當computed在method中被使用時,代碼首先執行值computed被引用處,而後繼續執行computed代碼,其實,最後的結果都是同樣,在method中拿到的computed數據都是更新過的。ps:儘可能少用watch,否則數據流不清晰方法

ele組件的執行順序:(綁定的都是change事件)

        radio:               v-model --> watch--> method --> computed         radioGroup:     v-model --> watch--> method --> computed         checkbox:           v-model --> method --> computed --> watch         checkboxGroup: v-model --> watch  --> method   --> computed 

相關文章
相關標籤/搜索