iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
Modern Web

VUE見我,走在時代的前端系列 第 10

DAY10 深入理解 Vue 3 的生命周期鉤子

  • 分享至 

  • xImage
  •  

在 Vue 3 中,生命周期鉤子是一個重要的概念,讓開發者能夠在不同階段對組件進行操作。這些鉤子函數會在 Vue 組件的不同生命週期階段被調用,這使得開發者可以控制初始化、數據更新、渲染和銷毀組件的過程。

Vue 3 的生命周期概述

Vue 3 的組件生命周期主要可分為三個階段:

  • 創建階段:這個階段負責組件的初始化和創建。這裡包括將數據和 props 等初始化、設置響應式系統,以及調用 setup() 方法(Vue 3 中獨有)。

  • 更新階段:在這個階段,當組件的數據或 props 變更時,Vue 會自動檢測到變化並觸發組件的重新渲染。

  • 銷毀階段:當組件被移除或銷毀時,Vue 會進行一些清理操作,例如解除事件監聽器和釋放資源。

主要的生命周期鉤子

1.beforeCreate 和 created

  • beforeCreate:在組件初始化階段,數據觀察者和響應式系統尚未設置,這個鉤子函數會在所有資料和 DOM 初始化之前調用。
  • created:在組件數據初始化之後調用,此時資料已經可以被訪問,但 DOM 還沒有掛載。

2.beforeMount 和 mounted

  • beforeMount:組件將被掛載到 DOM 中時調用,這個鉤子在虛擬 DOM 渲染之前觸發。
  • mounted:這是 Vue 3 組件生命周期的一個關鍵點,組件已經被掛載到真實的 DOM 上,這表示 DOM 操作或第三方庫初始化等可以在這個階段進行。

3.beforeUpdate 和 updated

  • beforeUpdate:當組件的響應式數據發生變更並即將更新 DOM 時觸發,開發者可以在這裡執行一些數據更新前的操作。
  • updated:組件更新後調用,這個鉤子在 DOM 已經更新完畢時觸發,可以進行與 DOM 結構相關的後續操作。

4.beforeUnmount 和 unmounted

  • beforeUnmount:組件即將從 DOM 中移除時調用,這是開發者進行組件銷毀前的操作的最佳時機。
  • unmounted:組件已經從 DOM 中移除時觸發,在這裡可以進行清理工作,解除事件監聽等。

Vue 3 特有的 setup() 鉤子

在 Vue 3 中,setup() 是一個核心特性,它是組件創建過程中最早被調用的鉤子之一。setup() 函數允許我們更好地掌控響應式數據、組件屬性以及自定義邏輯。它被用來初始化組件的狀態,並在渲染函數執行之前設置好需要的數據和方法。

組件生命周期鉤子的實際應用

1.API 請求:在 mounted 鉤子中進行 API 請求以獲取數據,並在 DOM 已經掛載之後更新界面。

2.監聽數據變化:利用 beforeUpdate 或 updated 鉤子,在數據更新時進行一些邏輯操作,例如數據驗證或 DOM 結構調整。

3.銷毀組件時的清理工作:在 beforeUnmount 或 unmounted 中進行事件監聽器的移除、定時器的清理等。

結論

Vue 3 的生命周期鉤子提供了靈活的方式來控制組件的各個階段,從創建到更新,再到銷毀。掌握這些鉤子的使用能讓我們在開發過程中更好地管理組件的狀態和行為。


上一篇
DAY9 Vue 3 的響應式系統:從 ref 到 reactive 的轉變
下一篇
DAY11 處理事件與表單綁定:v-model 和事件處理
系列文
VUE見我,走在時代的前端30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言