【Vue】Vue 的生命週期
Published in
2 min readSep 6, 2020
🚩 前言
Vue 在做每一個動作的前後,
都可以使用 hook 的方式做需要做的事情,
例如: created
、 mounted
。
以下用一張圖片來呈現 Vue 的生命週期的各個 hook。
🚩 hook
- before Create
在這個時候資料還沒匯入,所以還沒有 Data 可以使用 - created
已經可以對數據做操作 - beforeMount
此時還沒有將模板套上 HTML 的 DOM 元素 - mounted
將x-template
掛載到 HTML 上, 假設有載入 jQuery,要到這個時候才可以操作 HTML 的 DOM 元素 - beforeUpdate
資料變動前的觸發 - updated
變動後的觸發 - beforeDestroyed
觀測、元件、事件移除前的觸發 - destroyed
移除後的觸發
🚩 其他細節
- 如果要操作 AJAX 行為的話要等到到 created 之後,
因為在那之前沒有資料可以處理。 - 想要維持資料狀態可以使用
<keep-alive>
當元件被移除時不會呼叫 destroyed,
所以在下次呼叫回來時資料狀態是不會有改變的。
如果有加 <keep-alive>
流程會是:
- … 前面都一樣
- mounted
- activated
- deactivated:消除元件時觸發的
activated、deactivated 這兩個 hook 是只有在 <keep-alive>
才會有的,
當元件要在啓用時,會直接觸發到 activated,會跳過前面那些 hook。
沒有加的流程會是:
- … 前面都一樣
- mounted
- beforeDestroyed:消除元件時觸發的
- destroyed