Vue筆記:生命週期,秒懂~

面試題:說一下Vue的生命週期

beforeCreate是new Vue()之後觸發的第一個鉤子,在當前階段data、methods、computed以及watch上的數據和方法都不能被訪問。

created在實例創建完成後發生,當前階段已經完成了數據觀測,也就是可以使用數據,更改數據,在這裏更改數據不會觸發updated函數。可以做一些初始數據的獲取,在當前階段無法與Dom進行交互,如果非要想,可以通過vm.$nextTick來訪問Dom。

beforeMount發生在掛載之前,在這之前template模板已導入渲染函數編譯。而當前階段虛擬Dom已經創建完成,即將開始渲染。在此時也可以對數據進行更改,不會觸發updated。

mounted在掛載完成後發生,在當前階段,真實的Dom掛載完畢,數據完成雙向綁定,可以訪問到Dom節點,使用$refs屬性對Dom進行操作。

beforeUpdate發生在更新之前,也就是響應式數據發生更新,虛擬dom重新渲染之前被觸發,你可以在當前階段進行更改數據,不會造成重渲染。

updated發生在更新完成之後,當前階段組件Dom已完成更新。要注意的是避免在此期間更改數據,因爲這可能會導致無限循環的更新。

beforeDestroy發生在實例銷燬之前,在當前階段實例完全可以被使用,我們可以在這時進行善後收尾工作,比如清除計時器。

destroyed發生在實例銷燬之後,這個時候只剩下了dom空殼。組件已被拆解,數據綁定被卸除,監聽被移出,子實例也統統被銷燬。

再來一打:
在這裏插入圖片描述
圖解:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
原理:
在這裏插入圖片描述 圖片來源:https://blog.csdn.net/qq_41646249/article/details/104644647?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf