当在vue项目中使用滚动监听时,页面跳转后,报错Uncaught TypeError: Cannot read property ‘offsetTop‘ of undefined at VueComp
vue生命周期钩子函数mounted,beforeDestroy
offsetTop of undefined 这个错误,是因为我在mounted页面加载的时,通过addEventListener给window添加了scroll滚动事件。当页面跳转后,没有自动销毁scroll的监听事件,所以会报错,但不影响功能。要避免这样的报错,我们就需要手动在beforeDestroy销毁阶段来销毁这个滚动监听事件就不会报错了。
如下代码:
mounted() { //加载阶段创建scroll监听事件 window.addEventListener("scroll", this.menu); }, beforeDestroy() { //在加载时添加了scroll监听,如果不销毁,到下一个页面时,没有主动销毁,会报错'offsetTop' of undefined。因此,需要在页面跳转前销毁此监听 window.removeEventListener("scroll", this.menu) }, methods: { //滚动条监听 menu() { let visionTitleOffsetTop = this.$refs.visionTitle.offsetTop; let visionTitle = this.$refs.visionTitle.classList; .......... } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-06-20 微信小程序生成小程序某一个页面的小程序码