每個 vue 例項在被建立之前都要經過一系列的初始化過程。
例如,例項需要配置資料觀測(data observer)、編譯模版、掛載例項到 dom ,然後在資料變化時更新 dom 。
下圖展示的就是乙個vue例項物件的生命週期。
從圖上我們可以看到vue在生命週期中有這些狀態,
beforecreate,created,beforemount,mounted,beforeupdate,updated,beforedestroy,destroyed
vue在例項化的過程中,會呼叫這些生命週期的鉤子,給我們提供了執行自定義邏輯的機會。
那麼,在這些vue鉤子中,vue例項到底執行了那些操作,我們先看下面執行的例子
我們可以看到,vue物件初始化過程中,會執行到beforecreate,created,beforemount,mounted
這幾個鉤子的內容
beforecreate
:資料還沒有監聽,沒有繫結到vue物件例項,同時也沒有掛載物件
created
:資料已經繫結到了物件例項,但是還沒有掛載物件
beforemount
: 模板已經編譯好了,根據資料和模板已經生成了對應的元素物件,將資料物件關聯到了物件的$el
屬性,$el
屬性是乙個htmlelement物件,
也就是這個階段,vue例項通過原生的createelement等方法來建立這個html片段,準備注入到我們vue例項指明的el屬性所對應的掛載點
mounted
:將$el
的內容掛載到了el,相當於我們在jquery執行了$(el).html($el)
,生成頁面上真正的dom,上面我們就會發現dom的元素和我們$el
的元素是一致的。在此之後,我們能夠用方法來獲取到el元素下的dom物件,並進 行各種操作
當我們的data發生改變時,會呼叫beforeupdate和updated方法
beforeupdate
:資料更新到dom之前,我們可以看到$el物件已經修改,但是我們頁面上dom的資料還沒有發生改變
updated
: dom結構會通過虛擬dom的原則,找到需要更新頁面dom結構的最小路徑,將改變更新到dom上面,完成更新
例項的銷毀
beforedestroy,destroed
:例項的銷毀,vue例項還是存在的,只是解綁了事件的監聽還有watcher物件資料與view的繫結,即資料驅動
vue2 0 vue例項的生命週期
vue把整個生命週期劃分為建立 掛載 更新 銷毀等階段,每個階段都會給一些 鉤子 讓我們來做一些我們想實現的動作。學習例項的生命週期,能幫助我們理解vue例項的運作機制,更好地合理利用各個鉤子來完成我們的業務 先看一下官網的生命週期圖例 如果覺的太複雜,那我們就從簡單的開始學起。這就是生命週期的8個...
vue2 0配置環境以入門例項
node.js環境 npm包管理器 vue cli 腳手架構建工具 cnpm npm的 映象 npm包管理器,是整合在node中的,所以,直接輸入 npm v就會如下圖所示,顯示出npm的版本資訊。node環境已經安裝完成,npm包管理器也有了。由於有些npm有些資源被遮蔽或者是國外資源的原因,經常...
vue2 0模擬錨點的例項
在vue專案中,因為採用路由跳轉,會導致無法使用常規的a標籤配合id的錨點功能。解決辦法 j ascript void 0 程式設計客棧rel external nofollow click goanchor anchor 灰啊灰啊我的驕傲放縱 程式設計客棧 a methods 17.9.20 更新...