vue的簡單介紹及生命週期

2021-10-08 09:52:08 字數 3290 閱讀 6445

宣告式渲染

條件與迴圈

條件渲染中注意事項

事件繫結

雙向繫結

生命週期

一共分為8個階段

beforecreate(建立期) ,created(建立後),beforemount(載入期),mounted(載入後),beforeupdat(更新前),updated(更新後 ),beforedestroy(銷毀前),destroyed(銷毀後)

vue第一次頁面載入會觸發beforecreata,created,beforemount,mounted鉤子函式

dom渲染在mounted週期中就已經完成了

mounted

1 .在mounted裡面修改data裡面的資料,並不是想要的直接就拿mounted裡面的修改過的值渲染介面,而是還會先拿data裡面的初始值進行渲染,然後走beforeupdate這裡拿新的資料進行渲染

2 .這是不是說如果想要修改data裡面的資料,要在beforemounted的時候修改呢

3 .其實beforemounted也是先按照預設值進行渲染,如果beforemounted裡面修改資料比較慢的話,他是不會等著的,還是會直接執行下乙個生命週期函式。也就是說所有的生命週期函式之間沒有done的操作

4 .如果在beforemounted裡面加乙個setinterval()來延遲修改值的話,也會觸發beforemounted函式

5 .往下看其實發現在mounted生命週期之前修改data裡面的資料都是在修改虛擬dom,直到mounted之後任何修改才會被渲染到頁面上。

6 .所以理論上只要在mounted之前修改資料都行,比如mounted裡面進行ajax請求,也是這個原理

7 .這個還需要再看下原始碼,應該就能記得比較清楚

8 .掛載頁面。

beforecreate

1 .進行初始化事件,this指向建立的例項

2 .不能訪問到data

3 .不能訪問computed

4 .不能訪問watch

5 .不能訪問methods

6 .以上的方法和資料

7 .用來初始化非響應變數

created鉤子

1 .例項建立完成

2 .資料已經和data屬性繫結,此時放在data中的屬性值發生改變的同時,檢視也會改變

3 .可以初始化ajax請求了

4 .可以訪問data

5 .可以訪問computed

6 .可以訪問watch

7 .可以訪問methods

8 .可以訪問到以上的方法和資料

9 .未掛載到dom

10 .不能訪問到ref屬性內容為空陣列

beforemount

1 .判斷是否有el選項,有就繼續,沒有就停止編譯,除非呼叫vm.$moune(el)

2 .是否有template引數選項

1 .有template引數選項,將模板編譯為render函式

2 .沒有template選項,將外部html作為模板編譯

3 .template中的模板優先順序要高於outer html的優先順序

//有template屬性的時候這個就不會被渲染了

3 .如果vue物件中還有乙個render函式的話,那麼又會先渲染render函式裡面的內容。所以這是有優先順序的

4 .模板編譯完成,但是未掛載,無法獲取dom

5 .給例項物件新增$el成員

6 .在掛載開始前被呼叫,在beforemount之前,會找到對應的template,並編譯成render函式

mounted

1 .在mounted之前還是通過}進行佔位的,因為還沒有掛載到頁面上,還是在js中以虛擬dom形式存在的 2 .mounted之後換成了我們想要的樣子 3 .例項掛載到dom上,此時可以通過dom api獲取到dom節點。 4 .$ref屬性可以訪問

5 .常用於獲取vnode資訊ajax請求

beforeupdate

1 .當data中的資料發生了改變,會觸發對應元件的重新渲染

2 .響應式資料更新時呼叫,發生在虛擬dom打補丁之前

3 .適合在試圖更新之前訪問現有dom,比如手動移除或者新增事件***

updated

1 .虛擬dom重新渲染和打補丁之後呼叫,元件dom已經更新,可執行依賴dom的操作

2 .避免在這個鉤子中運算元據,不然可能陷入死迴圈

beforedestory

1 .例項銷毀之前呼叫,這一步例項仍然可以使用,this仍然可以獲取例項

2 .常用於銷毀定時器,解綁全域性事件,銷毀外掛程式物件等操作

destoryed

1 .例項銷毀之後呼叫,呼叫後,vue例項指示的所有東西都會解綁,所有事件***都會被移除,所有子例項也會被銷毀、

注意

1 .created階段的ajax請求和mounted階段請求的區別:前者頁面未出現,如果請求訊息太多,頁面會長時間處於白屏狀態

2 .mounted不會承諾所有的子元件也都一起被掛載。如果希望等到整個檢視都被渲染完畢,可以使用this.$nexttick

Vue 簡單理解生命週期

請先看官方圖示 點我鏈結 簡單化理解只有四個步驟,每個都有前置函式before create mount update destroy 1.初始化 new vue beforecreate created 2.當el選項繫結時 使用 mount繫結時 brforemount mounted 3.da...

簡單認識Vue的生命週期

vue的生命週期指的是元件從建立到銷毀的一系列的過程 資料監聽 編譯模板 將例項掛載到 dom 更新 dom 等 通過vue在生命週期各個階段的鉤子函式,可以很好的在vue的各個生命階段實現一些操作。建立期間 created beforemount mounted 執行期間 updated 銷毀期間...

vue生命週期

beforecreate 元件例項剛剛被建立,屬性都沒有 create 例項已經建立完成,屬性已經繫結 beforemount 模板編譯之前 mounted 模板編譯之後 beforeupdate 元件更新之前 updated 元件更新完畢 beforedestroy 元件銷毀之前 destroye...