所有的生命周期鉤子自動(dòng)綁定 this 上下文到實(shí)例中,因此你可以訪問(wèn)數(shù)據(jù)矩距,對(duì)屬性和方法進(jìn)行運(yùn)算蜡吧。這意味著你不能使用箭頭函數(shù)來(lái)定義一個(gè)生命周期方法
創(chuàng)建 => beforeCreate created
掛載 => beforeMount mounted 請(qǐng)求數(shù)據(jù)獲取元素
更新 => beforeUpdate uptdated 優(yōu)化
銷毀 => beforeDestory destoryed
-
beforeCreate
- 在實(shí)例初始化之后a
- 數(shù)據(jù)觀測(cè) (data observer) 和 event/watcher 事件配置之前被調(diào)用
-
created
- 在實(shí)例創(chuàng)建完成后被立即調(diào)用
- 在這一步瞭吃,實(shí)例已完成以下的配置:數(shù)據(jù)觀測(cè) (data observer)芹啥,屬性和方法的運(yùn)算孝宗,watch/event 事件回調(diào)厢洞。
- 掛載階段還沒(méi)開(kāi)始祠挫,$el 屬性目前不可見(jiàn)
-
beforeMount
- 在掛載開(kāi)始之前被調(diào)用:相關(guān)的 render 函數(shù)首次被調(diào)用
-
mounted
- el 被新創(chuàng)建的 vm.$el 替換飒焦,并掛載到實(shí)例上去之后調(diào)用該鉤子
- 當(dāng) mounted 被調(diào)用時(shí) vm.$el 也在文檔內(nèi)
- 注意 mounted 不會(huì)承諾所有的子組件也都一起被掛載蜈膨。如果你希望等到整個(gè)視圖都渲染完畢,可以用 vm.$nextTick 替換掉 mounted
-
beforeUpdate
- 數(shù)據(jù)更新時(shí)調(diào)用牺荠,發(fā)生在虛擬 DOM 打補(bǔ)丁之前翁巍。這里適合在更新之前訪問(wèn)現(xiàn)有的 DOM,比如手動(dòng)移除已添加的事件監(jiān)聽(tīng)器
-
updated
- 當(dāng)這個(gè)鉤子被調(diào)用時(shí)休雌,組件 DOM 已經(jīng)更新灶壶,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作。然而在大多數(shù)情況下杈曲,你應(yīng)該避免在此期間更改狀態(tài)驰凛。如果要相應(yīng)狀態(tài)改變,通常最好使用計(jì)算屬性或 watcher 取而代之
- 注意 updated 不會(huì)承諾所有的子組件也都一起被重繪担扑。如果你希望等到整個(gè)視圖都重繪完畢恰响,可以用 vm.$nextTick 替換掉 updated
-
beforeDestroy
- 實(shí)例銷毀之前調(diào)用。在這一步涌献,實(shí)例仍然完全可用
-
destroyed
- Vue 實(shí)例銷毀后調(diào)用胚宦。調(diào)用后,Vue 實(shí)例指示的所有東西都會(huì)解綁定燕垃,所有的事件監(jiān)聽(tīng)器會(huì)被移除枢劝,所有的子實(shí)例也會(huì)被銷毀
activated
keep-alive 組件激活時(shí)調(diào)用deactivated
keep-alive 組件停用時(shí)調(diào)用。-
errorCaptured
- 當(dāng)捕獲一個(gè)來(lái)自子孫組件的錯(cuò)誤時(shí)被調(diào)用利术。此鉤子會(huì)收到三個(gè)參數(shù):錯(cuò)誤對(duì)象呈野、發(fā)生錯(cuò)誤的組件實(shí)例以及一個(gè)包含錯(cuò)誤來(lái)源信息的字符串。此鉤子可以返回 false 以阻止該錯(cuò)誤繼續(xù)向上傳播印叁。
- 你可以在此鉤子中修改組件的狀態(tài)被冒。因此在模板或渲染函數(shù)中設(shè)置其它內(nèi)容的短路條件非常重要,它可以防止當(dāng)一個(gè)錯(cuò)誤被捕獲時(shí)該組件進(jìn)入一個(gè)無(wú)限的渲染循環(huán)
錯(cuò)誤傳播規(guī)則
1. 默認(rèn)情況下轮蜕,如果全局的 config.errorHandler 被定義昨悼,所有的錯(cuò)誤仍會(huì)發(fā)送它,因此這些錯(cuò)誤仍然會(huì)向單一的分析服務(wù)的地方進(jìn)行匯報(bào)
2. 如果一個(gè)組件的繼承或父級(jí)從屬鏈路中存在多個(gè) errorCaptured 鉤子跃洛,則它們將會(huì)被相同的錯(cuò)誤逐個(gè)喚起
3. 如果此 errorCaptured 鉤子自身拋出了一個(gè)錯(cuò)誤率触,則這個(gè)新錯(cuò)誤和原本被捕獲的錯(cuò)誤都會(huì)發(fā)送給全局的 config.errorHandler
4. 一個(gè) errorCaptured 鉤子能夠返回 false 以阻止錯(cuò)誤繼續(xù)向上傳播。本質(zhì)上是說(shuō)“這個(gè)錯(cuò)誤已經(jīng)被搞定了且應(yīng)該被忽略”汇竭。它會(huì)阻止其它任何會(huì)被這個(gè)錯(cuò)誤喚起的 errorCaptured 鉤子和全局的 config.errorHandler
v-if與v-show不同場(chǎng)景
v-if : 首次渲染的時(shí)候葱蝗,是不創(chuàng)建組件或者元素
v-show: 首次渲染的時(shí)候穴张,會(huì)創(chuàng)建組件或者元素
v-if: 在多次切換顯示和隱藏的時(shí)候 會(huì)摧毀組件或重新創(chuàng)建組件
v-show: 在多次切換顯示和隱藏的時(shí)候 控制css樣式顯示隱藏