vue组件没有被缓存,进入页面初始化图片长按事件,第二次进入相同组件导致长按事件被多次触发?

1、我在mounted里初始化图片长按事件
图片描述

2、退出这个组件页面,Router里并没有缓存这个页面,我从新进入这个组件时,长按图片会出现多次
图片描述

阅读 2.8k
2 个回答

这个跟 Vue 是否缓存组件无关。你是在 mounted 里调用绑定函数的,mounted 是钩子,设计用来每次都触发,所以多次绑定。

类似这种问题你得先想清楚,既然要绑定到 document.body,那就是全局的事件,就应该放在全局入口。如果必须绑定到特定组件上,那应该在 destroy 的时候解绑。

没有用过mui,但看写法,
clipboard.png

这显然是做的事件委托,把 longtap 这个自定义事件委托到了 document.body 上面,spa 里不做重新刷新,body 上委托的事件肯定不会销毁,因此没进入一次这个组件,初始化一次事件绑定,导致越来越多

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题