Vue 生命週期-隨記

全局鉤子函數:
1.beforeCreate:Vue實例未掛載el, dom未生成,data未初始化,沒法獲取 data中的數據、methods中的方法;html

2.created:ue實例未掛載el, dom未生成,data屬性初始化成功,能夠調用methods中的方法、改變data中的數據;在這一步,實例已完成如下的配置:數據觀測 (data observer)屬性方法的運算watch/event 事件回調。vue

3.beforeMount:完成el和data的初始化,模板編譯以前,仍是經過{{message}}進行佔位的,由於此時還有掛在到頁面上,仍是JavaScript中的虛擬DOM形式存在的。相關的 render 函數首次被調用,該鉤子在服務器端渲染期間不被調用;服務器

4.mounted:模板編譯,vue實例已經掛載到頁面中,el 被新建立的 vm.$el 替換,並掛載到實例上去以後調用該鉤子。能夠獲取DOM元素,進行DOM操做;若是 root 實例掛載了一個文檔內元素,當 mounted 被調用時 vm.$el 也在文檔內。該鉤子在服務器端渲染期間不被調用dom

注意 mounted 不會承諾全部的子組件也都一塊兒被掛載。若是你但願等到整個視圖都渲染完畢,能夠用 vm.$nextTick 替換掉 mounted函數

組件鉤子函數:
5.beforeUpdate:數據更新時調用,發生在虛擬 DOM 打補丁以前。這裏適合在更新以前訪問現有的 DOM,好比手動移除已添加的事件監聽器。
該鉤子在服務器端渲染期間不被調用,由於只有初次渲染會在服務端進行。this

6.updated:因爲data更改致使的虛擬 DOM 從新渲染和打補丁,在這以後會調用該鉤子。注意 updated 不會承諾全部的子組件也都一塊兒被重繪。若是你但願等到整個視圖都重繪完畢,能夠用 vm.$nextTick 替換掉 updated該鉤子在服務器端渲染期間不被調用。
7.activated:keep-alive 組件激活時調用。該鉤子在服務器端渲染期間不被調用。code

8.deactivated:keep-alive 組件停用時調用。該鉤子在服務器端渲染期間不被調用。server

9.beforeDestroy:實例銷燬以前調用。在這一步,實例仍然徹底可用。該鉤子在服務器端渲染期間不被調用。htm

10.destroyed:Vue 實例銷燬後調用。調用後,Vue 實例指示的全部東西都會解綁定,全部的事件監聽器會被移除,全部的子實例也會被銷燬。
該鉤子在服務器端渲染期間不被調用。事件

beforecreate : 加loading事件
created :結束loading,作一些初始化,實現函數自執行
mounted : 請求數據,配合路由鉤子作一些事情
beforeDestroy: 清除定時器(建議使用this.$once('hook:beforeDestroy, ()=>{})),提示編輯內容未保存之類
destroyed :當前組件已被刪除,清空相關內容

相關文章
相關標籤/搜索