免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Vue生命周期,我奶奶看了都懂了

最近一直在學(xué)習(xí)Vue,而vue生命周期是我們不可能繞開的一個很核心的知識點,今天來簡單的梳理一下大概的內(nèi)容。

一、鉤子函數(shù)

在一開始學(xué)習(xí)的時候,總有鉤子函數(shù)這個名詞冒出來,而且在vue官網(wǎng)文檔中也頻繁出現(xiàn),也相信給很多初學(xué)者帶來了困擾。那到底什么是鉤子函數(shù)呢?

按我個人的理解,鉤子函數(shù)就是一個函數(shù),就是在vue實例在某個時間點自動執(zhí)行的函數(shù)。鉤子函數(shù)鉤子函數(shù),就是掛載一些東西的,我們把需要實現(xiàn)的一些功能代碼寫在對應(yīng)的鉤子函數(shù)中,當(dāng)生命周期在執(zhí)行的時候,就能執(zhí)行我們掛載的代碼。

鉤子函數(shù)的實現(xiàn),基本原理就是callback,回調(diào)函數(shù)。

二、vue生命周期圖示(注釋)

原圖是從vuejs官方文檔上拷下來的,自己用ps寫了一點注釋。

三、vue生命周期詳細解析

1. 實例化vue(組件)對象:new Vue()

2. 初始化事件和生命周期 init events 和 init lifecycle

3. beforeCreate函數(shù):

在實例初始化之后,數(shù)據(jù)觀測 (data observer) 和 event/watcher 事件配置之前被調(diào)用。

即此時vue(組件)對象被創(chuàng)建了,但是vue對象的屬性還沒有綁定,如data屬性,computed屬性還沒有綁定,即沒有值。此時還沒有數(shù)據(jù)和真實DOM。屬性還沒有賦值,也沒有動態(tài)創(chuàng)建template屬性對應(yīng)的HTML元素(二階段的createUI函數(shù)還沒有執(zhí)行)

4. 掛載數(shù)據(jù)(屬性賦值)

包括 屬性和computed的運算,通過依賴注入導(dǎo)入依賴

5. Created函數(shù):

此時vue對象的屬性有值了,但是DOM還沒有生成,$el屬性還不存在。
此時有數(shù)據(jù)了,但是還沒有真實的DOM

即:data,computed都執(zhí)行了。屬性已經(jīng)賦值,但沒有動態(tài)創(chuàng)建template屬性對應(yīng)的HTML元素,所以,此時如果更改數(shù)據(jù)不會觸發(fā)updated函數(shù)

如果:數(shù)據(jù)的初始值就來自于后端,可以發(fā)送ajax,或者fetch請求獲取數(shù)據(jù),但是,此時不會觸發(fā)updated函數(shù)

6. 檢查

1)檢查是否有el屬性
檢查vue配置,即new Vue{}里面的el項是否存在,有就繼續(xù)檢查template項。沒有則等到手動綁定調(diào)用vm.$mount()

完成了全局變量$el的綁定。

2)檢查是否有template屬性

檢查配置中的template項,如果沒有template進行填充被綁定區(qū)域,則被綁定區(qū)域的el對象的outerHTML(即整個#app DOM對象,包括< div id=”app” >和< /div>標(biāo)簽)都作為被填充對象替換掉填充區(qū)域

即:如果vue對象中有 template屬性,那么,template后面的HTML會替換$el對應(yīng)的內(nèi)容。如果有render屬性(渲染),那么render就會替換template。

即:優(yōu)先關(guān)系時: render > template > el

7. beforeMount函數(shù):

模板編譯(template)、數(shù)據(jù)掛載(把數(shù)據(jù)顯示在模板里)之前執(zhí)行的鉤子函數(shù)

此時 this.$el有值,但是數(shù)據(jù)還沒有掛載到頁面上。即此時頁面中的{{}}里的變量還沒有被數(shù)據(jù)替換

8. 模板編譯:用vue對象的數(shù)據(jù)(屬性)替換模板中的內(nèi)容

9. Mounted函數(shù):

模板編譯完成,數(shù)據(jù)掛載完畢

即:此時已經(jīng)把數(shù)據(jù)掛載到了頁面上,所以,頁面上能夠看到正確的數(shù)據(jù)了。

一般來說,我們在此處發(fā)送異步請求(ajax,fetch,axios等),獲取服務(wù)器上的數(shù)據(jù),顯示在DOM里。

10. beforeUpdate函數(shù):

組件更新之前執(zhí)行的函數(shù),只有數(shù)據(jù)更新后,才能調(diào)用(觸發(fā))beforeUpdate,注意:此數(shù)據(jù)一定是在模板上出現(xiàn)的數(shù)據(jù),否則,不會,也沒有必要觸發(fā)組件更新(因為數(shù)據(jù)不出現(xiàn)在模板里,就沒有必要再次渲染)

數(shù)據(jù)更新了,但是,vue(組件)對象對應(yīng)的dom中的內(nèi)部(innerHTML)沒有變,所以叫作組件更新前。(數(shù)據(jù)更了,模板沒更新)

11. updated函數(shù):

組件更新之后執(zhí)行的函數(shù)

vue(組件)對象對應(yīng)的dom中的內(nèi)部(innerHTML)改變了,所以,叫作組件更新之后

12. beforeDestroy:vue(組件)對象銷毀之前

13. destroyed:vue組件銷毀后

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Vue 常見面試題匯總(這些技巧你真的都掌握了嗎?嘔心瀝血2w字整理)
vue組件的生命周期
面試官:聊聊對Vue.js框架的理解
前端開發(fā)框架vue常見的面試題
前端知識大全
2023年最新版30大Vue JS面試問題 及答案(必考)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服