1. 程式人生 > 其它 >3 設計模式之單例模式

3 設計模式之單例模式

生命週期

概念

從出生到死亡,從建立到銷燬的一個過程
在整個例項建立到銷燬的過程種有很多函式的出現,那麼我們管這些函式稱為生命週期函式

整個生命週期中都有哪些函式?
八大生命週期函式
beforeCreate 建立之前
created 建立完成
beforeMount 掛載之前
mounted 掛載
beforeUpdate 更新之前
updated 更新
beforeDestroy 銷燬之前
destroyed 銷燬

頁面一載入觸發哪些生命週期函式

觸發了前四個生命週期函式
beforeCreate 建立之前
created 建立完成
beforeMount 掛載之前
mounted 掛載

如何理解生命週期圖示/你怎麼理解生命週期

建立一個vue例項,在建立之前是一個空的vue物件,只有預設事件個生命週期函式
生命週期在建立之前,沒有el元素,沒有data屬性。
當生命週期執行到建立的時候,依然沒有el元素,但是這時候出現了data屬性。
生命週期執行到掛載之前,首先我們要判斷是否含有el屬性,如果沒有,我們看一下時候含有$mount()這個手動掛載方法,如果都沒有,生命週期結束。如果有$mount('掛載點')生命週期繼續執行。出現el屬性,我們要先判斷是否含有template這個屬性,如果有,就直接編譯解析成模板,如果有render()這個函式,優先渲染render()函式的內容,如果都沒有就把外部的html(outerHTML)作為模板去編譯解析。由此可以看出渲染的優先順序是render>tempalte屬性>outerHTML但是這個時候只是虛擬佔位,真實資料並沒有渲染,data屬性依然存在。
當生命週期掛載完成,檢視更新,被data屬性所渲染,data資料依然不變。
當資料發生變化,就會觸發beforeUpdate和updated
當呼叫destroy()這個函式方法的時候,執行beforeDestroy 銷燬之前,destroyed 銷燬這兩個函式方法。

你經常使用的生命週期函式有哪些?哪些函式中會經常呼叫ajax

在created的時候已經含有了data和methods,你可以在created中呼叫ajax。
我個人習慣在mounted中呼叫ajax呼叫,這個時候,虛擬的資料已經替換了真實資料,你呼叫介面結束之後,可能會操作dom,所以在mounted中呼叫。
在mounted中我們可以進行大量的非同步操作,比如ajax,比如 setTimenOut