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;
..........
}
}