閱讀時間預估:5分鐘
前端
生命週期是指一個事物從生到死的過程,軟件也同樣,每一個語言都有其生命週期,從出生到死亡,每一個階段作每一個階段應該作的事情,簡單說:一個組件從開始到最後消亡所經歷的各類狀態,就是一個組件的生命週期。vue
例如面前這位大俠,既然是小白那麼就要苦練基本功,千里之行始於足下,萬層高樓,平地起,相信在持續的努力中會有所進步,廢話很少說直接上乾貨。git
官方傳送門程序員
生命週期鉤子函數的定義:從組件被建立,到組件掛載到頁面上運行,再到頁面關閉組件被卸載,這三個階段老是伴隨着組件各類各樣的事件,這些事件,統稱爲組件的生命週期函數!github
注意:Vue在執行過程當中會自動調用生命週期鉤子函數,咱們只須要提供這些鉤子函數便可segmentfault
注意:鉤子函數的名稱都是Vue中規定好的!api
說了這麼多來點實在的,大佬通常如何在代碼中合理的利用生命週期來構建代碼呢?bash
beforeCreate () {
// 進行初始化事件,進行數據的觀測,能夠看到在created的時候數據已經和data屬性進行綁定(放在data中的屬性當值發生改變的同時,視圖也會改變)。注意:此時仍是沒有el選項
},
components: {},
data () {
return {
show: false,
msg: "hello word",
mg: "你好世界"
}
},
watch: {
},
methods: {
destory () {
// 調用銷燬
this.$destroy();
}
},
created () {
// 在這一階段發生的事情仍是比較多的。首先,會判斷對象是否有el選項:若是有的話就繼續向下編譯,若是沒有el選項,則中止編譯,也就意味着中止了生命週期,直到在該vue實例上調用vm.$mount(el)
},
beforeMount () {
//  能夠看到此時是給vue實例對象添加$el成員,而且替換掉掛在的DOM元素。由於在以前console中打印的結果能夠看到beforeMount以前el上仍是undefined。
},
mounted () {
this.intervalID = setInterval(() => {
console.log("++++++-------++++");
this.show = !this.show;
}, 1000);
// 在mounted以前p中仍是經過{{message}}進行佔位的,由於此時尚未掛在到頁面上,仍是JavaScript中的虛擬DOM形式存在的。在mounted以後能夠看到h1中的內容發生了變化。
},
beforeUpdate () {
// 當vue發現data中的數據發生了改變,會觸發對應組件的從新渲染,前後調用beforeUpdate和updated鉤子函數。
},
updated () {
// 在beforeUpdate能夠監聽到data的變化,可是view層沒有被從新渲染,view層的數據沒有變化。等到updated的時候,view層才被從新渲染,數據更新。
},
beforeDestory () {
clearInterval(this.intervalID);
//  beforeDestroy鉤子函數在實例銷燬以前調用。在這一步,實例仍然徹底可用,能夠用於清除定時器
},
destory () {
//調用後,Vue 實例指示的全部東西都會解綁定,全部的事件監聽器會被移除,全部的子實例也會被銷燬。
},
複製代碼
看完這篇不知道面前的這位大俠是否真正的領略到vue生命週期的厲害之處,必定要多用多理解每一個生命節點都能幹啥,別在錯誤的節點幹錯誤的事,例如面前這位大俠,此時正是年輕有爲之時,必定要腳踏實地,珍惜時間,充實本身,切勿,不勞而獲,好高騖遠哦!加油,前端甜小白....函數
若是個人分享對面前的這位大俠有所啓發,懇請以程序員最高禮遇點✨ 星評論加分享的方式鼓勵我.學習
關注公衆號回覆:學習 領取前端最新最全學習資料,也能夠進羣和大佬一塊兒學習交流