关于uniapp的事件监听,使用uni.$once和uni.$on导致的重复监听

最近写项目的时候遇到个问题,就是在使用uniapp的事件监听器时出现重复监听问题。一开始我是用的uni.$on去监听事件,然后出现了重复的触发监听。百度了下,官方提示单次触发的建议使用uni.$once。于是乎我改为了uni.$once,确实重复监听的问题没了,但是又伴随一个新的问题。那就是当打开的二级页面未触发监听时,监听是仍然存在的。所以就造成了如果你一直在打开页面而未触发监听,就会在触发的那一次把之前未触发的监听全部触发,导致你接收到了多次值。所以,最后我是在onUnload()页面生命周期卸载了监听,就是每次退出二级页面的时候都对监听进行移除,问题就解决了。

你可能感兴趣的:(关于uniapp的事件监听,使用uni.$once和uni.$on导致的重复监听)