Vue之生命週期函式和鉤子函式詳解

2022-07-28 07:51:12 字數 2288 閱讀 9259

在學習vue幾天後,感覺現在還停留在初級階段,雖然知道怎麼和後端做資料互動,但是對對vue的生命週期不甚了解。只知道簡單的使用,而不知道為什麼,這對後面的踩坑是相當不利的。

因為我們有時候會在幾個鉤子函式裡做一些事情,什麼時候做,在哪個函式裡做,我們不清楚。

今天就記錄一下學習所得。

vue例項有乙個完整的生命週期,也就是從開始建立、初始化資料、編譯模板、掛載dom、渲染→更新→渲染、銷毀等一系列過程,我們稱這是vue的生命週期。通俗說就是vue例項從建立到銷毀的過程,就是生命週期。

每乙個元件或者例項都會經歷乙個完整的生命週期,總共分為三個階段:初始化、執行中、銷毀。

beforecreate() 這是我們遇到的第乙個生命週期函式,表示例項完全被建立出來之前,會執行它。 

注意: 在 beforecreate 生命週期函式執行的時候,data 和 methods 中的 資料都還沒有沒初始化

created()  這是遇到的第二個生命週期函式 ,在 created 中,data 和 methods 都已經被初始化好了!如果要呼叫 methods 中的方法,或者操作 data 中的資料,最早,只能在 created 中操作

beforemount()  這是遇到的第3個生命週期函式,表示 模板已經在記憶體中編輯完成了,但是尚未把 模板渲染到 頁面中,在 beforemount 執行的時候,頁面中的元素,還沒有被真正替換過來,只是之前寫的一些模板字串

mounted()  這是遇到的第4個生命週期函式,表示,記憶體中的模板,已經真實的掛載到了頁面中,使用者已經可以看到渲染好的頁面了 ,注意: mounted 是 例項建立期間的最後乙個生命週期函式,當執行完 mounted 就表示,例項已經被完全建立好了,此時,如果沒有其它操作的話,這個例項,就靜靜的 躺在我們的記憶體中,一動不動

beforeupdate()  當執行 beforeupdate 的時候,頁面中的顯示的資料,還是舊的,此時 data 資料是最新的,頁面尚未和 最新的資料保持同步

updated()  updated 事件執行的時候,頁面和 data 資料已經保持同步了,都是最新的

="修改msg"

@click

="msg='no'"

>

<

h3 id

="h3"

>}

h3>

div>

<

script

>

//建立 vue 例項,得到 viewmodel

varvm

=new

vue(,

methods:

},beforecreate() ,

created() ,

beforemount() ,

mounted() ,

//接下來的是執行中的兩個事件

beforeupdate() ,

updated()

});script

>

body

>

html

>

生命週期圖:

vue生命週期函式 鉤子函式

一 vue生命週期簡介 二 生命週期 對於執行順序和什麼時候執行,看上面圖基本有個了解了。下面我們將結合 去看看鉤子函式的執行。1.create 和 mounted beforecreated el 和 data 並未初始化 created 完成了 data 資料的初始化,el沒有 beforemo...

vue生命週期,鉤子函式

一 vue生命週期簡介 咱們從上圖可以很明顯的看出現在vue2.0都包括了哪些生命週期的函式了,總結一下,對官方文件的那張圖簡化一下,就得到了這張圖。二 生命週期 對於執行順序和什麼時候執行,看上面圖基本有個了解了。下面我們將結合 去看看鉤子函式的執行。鉤子函式 1.create 和 mounted...

vue 生命週期(鉤子函式)

new vue 例項物件,下一步進入beforcreate 狀態 當使用new vue 建立物件之前,執行的事件 這裡可以做載入動畫 下一步,進入created 然後,他會檢測是否有el屬性,如果有在檢測template屬性型別,是一段渲染的函式還是一段html 然後就進入了beforemount狀...