情景:vue框架中通常在created鉤子函式裡執行訪問資料庫的方法,然後返回資料給前端,前端data中定義全域性變數接收資料
但是如果你在created中執行了好幾個訪問資料庫的函式,如果對他們的執行順序是有要求的,那麼哪個會先返回,哪個會後返回呢
並不是誰在前誰就先返回,如果你這樣想,並且在後執行的函式中對先執行的函式返回的資料進行操作,經常會報錯,提示某些屬性不存在,或未定義
原因:這是因為js中預設執行網路請求是非同步的,他們會按順序發出請求之後就不管了,誰先返回是不確定的,這樣在載入資料的時候不會因為某個網路請求慢,而在一直等待那個請求,導致其他請求阻塞,效率,體驗很差
解決方法:
如果一次載入頁面需要執行多個網路請求,並且對返回的資料順序是有要求的,就用.then()函式,當這個函式執行完後再執行下個函式
computed是在dom執行完成後立馬執行(如:賦值)
created執行時掛載階段還沒有開始,模版還沒有渲染成html,所以無法獲取元素。created鉤子函式主要用來初始化資料。
mounted鉤子函式一般用來向後端發起請求,拿到資料後做一些業務處理。該函式在模版渲染完成後才被呼叫。dom操作一般是在mounted鉤子函式中進行。
methods方法有一定的觸發條件,如click等。
watch用於檢測vue例項上資料的變動
預設載入的時候先computed再watch,不執行methods;等觸發某一事件後,則是:先methods再watch。
建議: 所有方法都應該在methods裡定義,在mounted或created裡面使用this呼叫,用這種方法實現初始化。
vue中各選項及鉤子函式執行順序
在vue中,例項選項和鉤子函式和 表示式都是不需要手動呼叫就可以直接執行的。vue的生命週期如下圖 在頁面首次載入執行順序有如下 beforecreate 在例項初始化之後 建立之前執行 created 例項建立後執行 beforemounted 在掛載開始之前呼叫 filters 掛載前載入過濾器...
Java中構造方法的執行順序
先執行 內部靜態物件的構造方法 如果有多個按定義的先後順序執行,靜態物件在構造的時候也是先執行其內部的靜態物件 再呼叫父類的構造方法,如果父類還有父類的話,從最開始的基類進行呼叫,如果沒有 編譯器會呼叫自己預設的父類構造方法super 但是如果呼叫父類自定義的構造方法時候,要在子類的構造方法中明確指...
Vue中父子元件執行的先後順序
vera 前幾天,朋友向我提出了乙個關於vue中父子元件執行的先後順序問題,相信很多朋友在學習的過程中也會遇到這個問題,所以我就在此提出我自己的一些小看法。問題如下 請問下圖中父子元件執行的先後順序?首先,我想先談一談vue的生命週期。我個人認為,從乙個例項物件被建立到例項物件被銷毀的過程就是該物件...