请问在vue中,为什么切换路由的时候,另一个组件的window.scroll会自动执行一次???

各位前辈,今天我在用vue写一个功能的时候发现一个很奇怪的问题,

我在一个组件的mounted钩子里面写了window的滚动事件
图片描述

路由的出口使用keep-alive
图片描述

奇怪的事情来了,我在这个组件滑动了一点距离,然后点击浏览器左上角的后退按钮,推回到上一个路由页面,
图片描述
图片描述
图片描述

为什么上一个组件的window滚动事件会执行一次???????????虽然功能没有问题,但是会报这个错啊!

希望能得到前辈解答!打扰了!

阅读 3.8k
3 个回答

自己找到答案了,因为在keep-alive作用下,某些钩子函数会失去作用,在deactivated()这个钩子函数解绑即可,

在当前组destroyed 周期销毁一下?

mounted window.addEventListener("scroll", func)
destroyed window.removeEventListener("scroll", func)

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