$once
在Vue中,$once是一個特殊的鉤子函數,它允許我們只在第一次觸發該事件時執行一次回調函數。這在某些情況下非常有用,例如我們只需要某個組件加載完成,而不需要重復執行動作時。
下面我們來看一個例子:
mounted() {
this.$once('loaded', () =>{
console.log('組件已加載完成')
})
}
在這個例子中,我們在mounted生命周期中使用$once方法,設置了一個監聽loaded事件的回調函數,一旦該事件被觸發,回調函數將會執行。但是,由于我們使用了$once方法,因此該事件只會被觸發一次,之后無論我們如何操作該組件,都不會再次執行回調函數。
$once還有一個非常實用的功能,就是在監聽器被觸發后,自動移除監聽器。例如:
created() {
const removeListener = () =>{
console.log('remove listener')
}
this.$once('click', removeListener)
}
在這個例子中,我們使用$once方法設置了一個監聽click事件的回調函數,之后回調函數會被觸發,并輸出'remove listener'文本。此時,回調函數將會被移除,不再監聽事件,即使我們再次觸發click事件,也不會再次輸出文本。