Vue_生命週期

第一階段:Creation 初始建置

Creation 階段是組件中運行的第一個 Hook 函式,與其他階段不同,它是在伺服器端渲染期間運行。因此,若需要在客戶端渲染和伺服器渲染期間於元件當中設置事件,須於此階段進行設定。

  • beforeCreate:Vue實例 初始化。
  • created:Vue實例 建立完成。資料 $data 已可取得,但 $el 屬性尚未被建立。

第二階段:Mounting 資料掛載

接續上一個 Creation 階段,首先他會先判斷是否有無 $el 屬性,若沒有則會嘗試另一種掛載方式(使用$mount掛載el)。
再來會判斷是否有 $template 屬性 ,若有則直接使用 render function ,反之則使用 $el teamplate 進行模板編譯。

  • beforeMount:執行元素掛載之前,代表 $el 尚未被建立。
  • mounted:元素已掛載, $el 被建立,是最常使用的生命週期 hook

補充:若要操作 AJAX,須於 created Hook階段後才能使用,但通常到 mounted Hook 階段,也就是現在才會被使用,屆時,也代表資料已掛載成功。

第三階段:Updating 重新渲染畫面

當元件的資料屬性發生變動,或其他因素導致畫面需要重新渲染時,則會調用 Updating 刷新網頁內容。

  • beforeUpdate:當資料改變被呼叫使用,還不會渲染 View。
  • updated:當資料更新完成,則驅動 DOM 元素重新渲染畫面 View。

第四階段:Destruction 銷毀

當呼叫 destroy 函式時,則會執行銷毀的動作,將原始的元件從 DOM 元素中移除。

  • beforeDestroy:Vue實例還可使用。
  • destroyed:Vue實例銷毀,所有的DOM 元素綁定被解除、移除偵聽事件、Vue child 實例也被一併銷毀。