眾所周知。
vue生命週期分成八個階段 此部落格搭配vue官方週期圖示食用效果更佳。
vue例項已經建立,但是data,和methods中的資料和方法都未被初始化。就是說你可以在beforecreated(){}中獲取到this,this指的是當前的vue例項或者元件,但是this.data,this.method都是獲取不到的。
vue中data和method都已經初始化好。一般在此鉤子函式中進行資料的初始化。
在此階段後和beforemounte之前執行了render函式。vue將**渲染成記憶體中的dom,也就是虛擬dom。尚未掛載到頁面中。
在此之後在beforemount之前,vue建構函式會檢查配置項中有無el屬性。如果有則替換html文件中的節點。再判斷是否指定了template選項,如果有則將template替換節點,如果沒有則依然是用el替換節點。
3.beforemount()函式中,頁面中是沒有被虛擬dom替換之前的dom
打個栗子
let vm = new vue(
},beforemount(),
mounted(),
methods:,
watch:,}}
改變!`,
})
再看列印結果
4.mounted() 頁面顯示的是已經被替換之後的元素。
以上是vue元件建立期間的鉤子函式
以下是元件執行期間的鉤子函式。
5.beforeupdate() 觸發此鉤子函式的方法就是data中的值發生改變。在此鉤子函式中還能拿到更新之前的值。
在此鉤子函式中,介面還沒有被更新,但是data值已經更新。(總結:舊頁面,新資料)
在beforeupdate之後和update之前vue在記憶體中偷偷執行了virtual dom的重新渲染和掛載。
6.update()在此鉤子中能拿到新介面的值,和新的資料值。(總結:新介面,新資料)
測試**及截圖
let comp = }
改變了",
data()
},methods:
},beforeupdate() ,
updated()
}let vm = new vue(
},components: ,
})
接下來就是銷毀階段
7.beforedestroy()進入到例項銷毀階段。例項中的所有資料和方法依舊可用。
8.destroyed()函式。例項已經銷毀,所有資料和方法均不可用。
Vue之生命週期函式
掛載el的兩種方式 八大生命週期函式 前四個是元件常見階段的生命週期函式,只會執行一次 1 beforecreate 建立例項之前,這個階段拿不到data上面的資料。此階段進行頁面重定向 建立例項之後 介面還沒有渲染,但是可以拿到data值了,也是最早可以對資料進行初始化的地方 此階段可以開始請求介...
vue 生命週期函式
什麼是生命週期 從vue例項建立 執行 到銷毀期間,總是伴隨著各種各樣的事件,這些事件,統稱為生命週期!生命週期鉤子 就是生命週期事件的別名而已 生命週期鉤子 生命週期函式 生命週期事件 主要的生命週期函式分類 建立期間的生命週期函式 beforecreate 例項剛在記憶體中被建立出來,此時,還沒...
vue 生命週期函式
每個鉤子函式都在什麼時間觸發 1.beforecreate 在例項初始化之後,資料觀測 data observer 和 event watcher 事件配置之前被呼叫。2.created 3.beforemount 在掛載開始之前被呼叫 相關的 render 函式首次被呼叫。4.mounted el...