Vue之生命週期函式詳解

2021-09-29 12:19:49 字數 1724 閱讀 7006

眾所周知。

vue生命週期分成八個階段   此部落格搭配vue官方週期圖示食用效果更佳。

vue例項已經建立,但是data,和methods中的資料和方法都未被初始化。就是說你可以在beforecreated(){}中獲取到this,this指的是當前的vue例項或者元件,但是this.data,this.method都是獲取不到的。

vue中data和method都已經初始化好。一般在此鉤子函式中進行資料的初始化。

在此階段後和beforemounte之前執行了render函式。vue將**渲染成記憶體中的dom,也就是虛擬dom。尚未掛載到頁面中。

在此之後在beforemount之前,vue建構函式會檢查配置項中有無el屬性。如果有則替換html文件中的節點。再判斷是否指定了template選項,如果有則將template替換節點,如果沒有則依然是用el替換節點。

3.beforemount()函式中,頁面中是沒有被虛擬dom替換之前的dom

打個栗子

let vm = new vue(

},beforemount(),

mounted(),

methods:,

watch:,}}

改變!`,

})

再看列印結果

4.mounted() 頁面顯示的是已經被替換之後的元素。

以上是vue元件建立期間的鉤子函式

以下是元件執行期間的鉤子函式。

5.beforeupdate() 觸發此鉤子函式的方法就是data中的值發生改變。在此鉤子函式中還能拿到更新之前的值。

在此鉤子函式中,介面還沒有被更新,但是data值已經更新。(總結:舊頁面,新資料)

在beforeupdate之後和update之前vue在記憶體中偷偷執行了virtual dom的重新渲染和掛載。

6.update()在此鉤子中能拿到新介面的值,和新的資料值。(總結:新介面,新資料)

測試**及截圖

let comp = }

改變了",

data()

},methods:

},beforeupdate() ,

updated()

}let vm = new vue(

},components: ,

})

接下來就是銷毀階段

7.beforedestroy()進入到例項銷毀階段。例項中的所有資料和方法依舊可用。

8.destroyed()函式。例項已經銷毀,所有資料和方法均不可用。

Vue之生命週期函式

掛載el的兩種方式 八大生命週期函式 前四個是元件常見階段的生命週期函式,只會執行一次 1 beforecreate 建立例項之前,這個階段拿不到data上面的資料。此階段進行頁面重定向 建立例項之後 介面還沒有渲染,但是可以拿到data值了,也是最早可以對資料進行初始化的地方 此階段可以開始請求介...

vue 生命週期函式

什麼是生命週期 從vue例項建立 執行 到銷毀期間,總是伴隨著各種各樣的事件,這些事件,統稱為生命週期!生命週期鉤子 就是生命週期事件的別名而已 生命週期鉤子 生命週期函式 生命週期事件 主要的生命週期函式分類 建立期間的生命週期函式 beforecreate 例項剛在記憶體中被建立出來,此時,還沒...

vue 生命週期函式

每個鉤子函式都在什麼時間觸發 1.beforecreate 在例項初始化之後,資料觀測 data observer 和 event watcher 事件配置之前被呼叫。2.created 3.beforemount 在掛載開始之前被呼叫 相關的 render 函式首次被呼叫。4.mounted el...