Vue實例生命週期

前面的話

  Vue實例在建立時有一系列的初始化步驟,例如創建數據觀察,編譯模板,建立數據綁定等。在此過程當中,咱們能夠經過一些定義好的生命週期鉤子函數來運行業務邏輯。本文將詳細介紹Vue實例的生命週期函數

 

圖示

  下圖是Vue實例生命週期的圖示this

 

解釋

  接下來,根據提供的生命週期鉤子,對Vue實例各個階段的狀況進行詳細說明spa

【beforeCreate】code

  在實例開始初始化時同步調用。此時數據觀測、事件等都還沒有初始化blog

【created】生命週期

  在實例建立以後調用。此時已完成數據觀測、事件方法,但還沒有開始DOM編譯,即未掛載到document中事件

【beforeMount】ip

  在mounted以前運行文檔

【mounted】同步

  在編譯結束時調用。此時全部指令已生效,數據變化已能觸發DOM更新,但不保證$el已插入文檔  

【beforeUpdate】

  在實例掛載以後,再次更新實例(例如更新 data)時會調用該方法,此時還沒有更新DOM結構

【updated】

  在實例掛載以後,再次更新實例並更新完DOM結構後調用

【beforeDestroy】

  在開始銷燬實例時調用,此刻實例仍然有效

【destroyed】

  在實例被銷燬以後調用。此時全部綁定和實例指令都已經解綁,子實例也被銷燬

【activated】

  須要配合動態組件keep-live屬性使用。在動態組件初始化渲染的過程當中調用該方法

【deactivated】

  須要配合動態組件keep-live屬性使用。在動態組件初始化移出的過程當中調用該方法

 

簡單實例

  下面寫一個簡單實例來更清楚地瞭解Vue實例內部的運行機制

<div id="example">{{message}}</div>
<script>
var vm = new Vue({
  el: '#example',
  data:{
    message:'match'
  },
  beforeCreate(){
    console.log('beforeCreate');
  },
  created(){
    console.log('created');
  },
  beforeMount(){
    console.log('beforeMount');
  },
  mounted(){
    console.log('mounted');
  },
  beforeUpdate(){
    console.log('beforeUpdate');
  },
  updated(){
    console.log('updated');
    //組件更新後調用$destroyed函數,進行銷燬
    this.$destroy();    
  },
  beforeDestroy(){
    console.log('beforeDestroy');
  },
  destroyed(){
    console.log('destroyed');
  },
})
</script>
相關文章
相關標籤/搜索