(生命週期鉤子)vue 專案實戰
阿新 • • 發佈:2018-11-28
(生命週期鉤子)vue 專案實戰
開篇先來一張圖
下圖是官方展示的生命週期圖
Vue例項的生命週期鉤子函式(8個)
1. beforeCreate
剛 new了一個元件,無法訪問到資料和真實的dom,基本上這個好像不能幹啥
2. created
data屬性完成了賦值,可以對資料進行修改但是不會觸發updated,在這裡可以做初始資料的獲取
3. beforeMount
render準備要渲染了,函式中虛擬dom已經建立完成,這時候改變資料也不會觸發update,在這裡可以做初始資料的獲取
4. mounted
開始render,渲染出真實dom,執行mounted鉤子函式,元件已經出現在頁面中,資料,事件,都DOM都處理好了。這裡你 可以改是進行真實的DOM操作
5. beforeUpdate
元件,例項資料更新之前會執行的函式,虛擬DOM會重新構建虛擬DOM,與上一次的虛擬DOM對比後重新渲染。切記不可 進行資料修改否則會出現死迴圈
6. updated
更新完會執行的函式,切記不可進行資料修改否則會出現死迴圈
7. beforeDestroy
例項被銷燬之前會執行的函式,做善後的工作,清除計時器,清除非指令繫結的事件等等
8. destroyed
例項被銷燬後會執行的函式,也可以做善後工作。
<template> <div class="hello"> Hello World! </div> </template> <script> export default { name: "HelloWorld", data() { return { msg: "Welcome to Your Vue.js App" }; }, beforeCreate: function() { console.log("data屬性光宣告沒有賦值的時候"); }, created: function() { console.log("data屬性完成了賦值"); }, beforeMount: function() { console.log("頁面上的{{name}}還沒有被渲染成真正的資料"); }, mounted: function() { console.log("頁面上的{{name}}被渲染成真正的資料"); }, beforeUpdate: function() { console.log(" 資料(data屬性)更新之前會執行的函式"); }, updated: function() { console.log("資料(data屬性)更新完會執行的函式"); }, beforeDestroy: function() { console.log("例項被銷燬之前會執行的函式"); }, destroyed: function() { console.log("例項被銷燬後會執行的函式"); } }//歡迎加入全棧開發交流圈一起學習交流:582735936 ]//面向1-3年前端人員 } //幫助突破技術瓶頸,提升思維能力 }; </script> <style scoped> </style>
console這樣一個輸出順序:
大概這樣一個 生命週期鉤子函式執行的順序,包括我之前是用angular開發跟vue一樣 他也有自己的生命週期鉤子函式。
生命週期簡單來說就是一個元件從建立到初始化到銷燬的一個過程,在這個過程中有這些生命週期鉤子函式我們可以更方便的去操作整一個元件