$once是Vue提供的一種事件監(jiān)聽方法,它與$on不同的是,$once只會(huì)在事件第一次被觸發(fā)時(shí)執(zhí)行,之后再次觸發(fā)同樣的事件將不再執(zhí)行相應(yīng)的回調(diào)函數(shù)。這種特性在某些場(chǎng)合下非常實(shí)用。
下面是$once的使用示例:
mounted() { this.$once('some-event', this.handleEvent) }, methods: { handleEvent() { console.log('Event triggered') } }
上面的代碼意義是,在組件的mounted生命周期鉤子函數(shù)中,只有當(dāng)'some-event'事件第一次被觸發(fā)時(shí),才會(huì)執(zhí)行handleEvent()函數(shù)。之后再次觸發(fā)'some-event'事件將不再執(zhí)行handleEvent()函數(shù)。
除了在Vue組件中使用$once,它也可以在Vue實(shí)例中使用,示例代碼如下:
const vm = new Vue() vm.$once('some-event', () =>{ console.log('Event triggered') })
需要注意的是,$once方法只注冊(cè)一次事件監(jiān)聽器,如果需要多次觸發(fā)事件,應(yīng)該使用$on方法。