在vue中,使用了element-ui的框架,点击左侧切换内部页面。
有些页面使用了定时器,在其换到其他页面的时候,希望能够关闭这些定期请求和复杂操作。
那么,切换页面之后如何关闭定时器?vue的创建流程中没找到能够激发的函数,使用onblur和visibilitychange也无效。
通过测试,发现在vue中,切换子页面之后,原来的vue对象依然存在,但是document已经无法获取对象了。
基于这一点,可以避免继续处理定时请求。但是定时器还是需要的。
// <div class="network-container" id="mainDiv">
mounted() {
this.loadData()
this.timer = setInterval(() => {
if (document.getElementById('mainDiv')) {
this.loadData() //需要定时查询的操作在隐藏时就不必了。
}
}, 1000 * 60)
},
unmounted() {
clearInterval(this.timer)
},