Vue生命周期實例分析總結(jié)
1. 概述
每個 Vue 實例在被創(chuàng)建之前都要經(jīng)過一系列的初始化過程。例如需要設(shè)置數(shù)據(jù)監(jiān)聽、編譯模板、掛載實例到 DOM、在數(shù)據(jù)變化時更新 DOM 等。同時在這個過程中也會運(yùn)行一些叫做生命周期鉤子的函數(shù),給予用戶機(jī)會在一些特定的場景下添加他們自己的代碼。
簡單來說,生命周期鉤子函數(shù)就是一堆回調(diào)函數(shù),在我們創(chuàng)建實例時,這些回調(diào)函數(shù)按順序執(zhí)行。
2. 頁面鉤子函數(shù)
名稱 | 作用 |
---|---|
beforeCreate | 在實例初始化之后,數(shù)據(jù)觀測和事件配置之前被調(diào)用。此時 data 和 methods 以及頁面的DOM結(jié)構(gòu)都沒有初始化,什么都做不了,執(zhí)行1次 |
created | 在實例創(chuàng)建完成后被立即調(diào)用,此時data 和 methods 已經(jīng)可以使用,但是頁面還沒有渲染出來,執(zhí)行1次,用this對象 |
beforeMount | 在掛載開始之前被調(diào)用,此時頁面上還看不到真實數(shù)據(jù),只是一個模板頁面而已,執(zhí)行1次 |
mounted | el被新創(chuàng)建的vm.$el替換,并掛載到實例上去之后調(diào)用該鉤子。 數(shù)據(jù)已經(jīng)真實渲染到頁面上 在這個鉤子函數(shù)里面,可以進(jìn)行數(shù)據(jù)請求等,執(zhí)行1次 |
beforeUpdate | 數(shù)據(jù)更新時調(diào)用,頁面上數(shù)據(jù)還是舊的 n次 |
updated | 由于數(shù)據(jù)更新完畢,頁面上數(shù)據(jù)已經(jīng)替換成最新的 n次 |
beforeDestroy | 實例銷毀之前調(diào)用,執(zhí)行1次 |
destroyed | 實例銷毀后調(diào)用,執(zhí)行1次 |
activated | keep-alive 組件激活時調(diào)用 |
deactivated | keep-alive 組件停用時調(diào)用 |
errorCaptured | 當(dāng)捕獲一個來自子孫組件的錯誤時被調(diào)用 |
3. 生命周期函數(shù)
下面我們用代碼實現(xiàn)以下生命周期函數(shù)的執(zhí)行順序:
<div id="app"> <input type="text" v-model="username"> </div> <script> const vm = new Vue({ el: '#app', data: { username: '' }, // 初始化階段生命周期 -- 它只都只執(zhí)行1次 beforeCreate() { console.log('beforeCreate'); }, created() { console.log('created'); }, beforeMount() { console.log('beforeMount'); }, mounted() { console.log('mounted'); setTimeout(() => { // 銷毀 this.$destroy() }, 2000); this.timer = setInterval(() => { console.log(111); }, 1000); }, // 更新階段生命周期,它們會執(zhí)行N次 beforeUpdate() { console.log('beforeUpdate'); }, updated() { console.log('updated'); }, // 銷毀階段 只執(zhí)行1次 beforeDestroy() { clearInterval(this.timer) console.log('beforeDestroy'); }, destroyed() { console.log('destroyed'); } }) </script>
到此這篇關(guān)于Vue生命周期實例分析總結(jié)的文章就介紹到這了,更多相關(guān)Vue生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
html中創(chuàng)建并調(diào)用vue組件的幾種方法匯總
這篇文章主要介紹了html中創(chuàng)建并調(diào)用vue組件的幾種方法匯總,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-11-11vue 實現(xiàn)根據(jù)data中的屬性值來設(shè)置不同的樣式
這篇文章主要介紹了vue 實現(xiàn)根據(jù)data中的屬性值來設(shè)置不同的樣式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08Vue-cli中為單獨(dú)頁面設(shè)置背景色的實現(xiàn)方法
下面小編就為大家分享一篇Vue-cli中為單獨(dú)頁面設(shè)置背景色的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02vue自定義組件實現(xiàn)v-model雙向綁定數(shù)據(jù)的實例代碼
vue中父子組件通信,都是單項的,直接在子組件中修改prop傳的值vue也會給出一個警告,接下來就用一個小列子一步一步實現(xiàn)了vue自定義的組件實現(xiàn)v-model雙向綁定,需要的朋友可以參考下2021-10-10