mounted () {
window.addEventListener('online', this.handleOnline)
this.$once('hook:beforeDestroy', function () {
window.removeEventListener('online', this.handleOnline)
})
},
vue2中可以用$once加hook:beforeDestroy
而在vue3中没有$noce,怎么用hook:beforeDestroy呢?
或者说,不在setup里调用声明周期,在mounted里怎么调用到其他生命周期呢?
其实你的这个需求是不需要用到 once 的特性的。
在组件的一次生命周期里
mounted
和beforeUnmount
(原beforeDestroy
)都只会触发一次(这也是钩子的once
特性被移除的原因,确实需要的时候(updated
等)也可以自己外部实现,普通的事件仍可以用.once
指令)。你只需要常规地添加生命周期回调即可:
如果想在
mounted
里添加其他生命周期回调,只需要嵌套调用:在
mounted
回调里添加其他生命周期回调,通常只有发结合router
特有的生命周期一起使用时才会发生: