62
Vue 3 學習之旅
進階功能
Day 62: 自訂指令的生命週期
·6 分鐘閱讀·進階功能
摘要
自訂指令擁有一套與元件類似的生命週期鉤子,讓我們可以在指令與元素綁定的不同階段執行程式碼。
定義與說明
一個指令的定義物件可以提供數個鉤子函數,它們會在特定時間點被呼叫:
- created:在綁定元素的屬性或事件監聽器被應用之前呼叫。
- beforeMount:在元素被插入到 DOM 之前呼叫。
- mounted:在元素被插入到 DOM 之後呼叫(最常用的鉤子)。
- beforeUpdate:在元素自身更新之前呼叫。
- updated:在元素自身及其子元素更新之後呼叫。
- beforeUnmount:在元素被卸載之前呼叫。
- unmounted:在元素被卸載之後呼叫(常用於清理工作)。
實作範例
Vue SFC
const vMyDirective = {
mounted(el, binding) {
console.log(`元素已掛載,值為: ${binding.value}`);
},
updated(el, binding) {
console.log(`元素已更新,新值為: ${binding.value}`);
},
unmounted() {
console.log('指令已卸載');
}
}
結論
指令的生命週期鉤子為我們提供了在不同階段與 DOM 元素互動的精確控制能力,從初始化設定到最終的資源清理,都能找到合適的執行時機。
生命週期 指令鉤子 DOM 操作