1. 程式人生 > >vue中watch,computed,mehtod執行順序

vue中watch,computed,mehtod執行順序

在vue中資料存在的方式有:data , props , computed 

由於vue的雙向資料繫結,自動更新資料的機制,在資料變化後,對此資料依賴 的所有資料,watch事件都會被更新、觸發。所以,只有資料本身變化了,依賴項才會改變。

computed:只有當computed 屬性被使用後,才會執行computed的程式碼,若元件中未被使用,computed程式碼不會執行。

執行順序:

    頁面載入時:

    onload: watch(immediate:true) --> computed --> watch(預設computed:false)

    互動改變資料時:

    event : watch --> computed --> method 

    注: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