当前页里有守时器,而且守时器正在来到页里时,有解除
beforeDestroy() {
if (this.timer) {
clearInterval(this.timer)
this.timer = null
}
},
原由
当前页里 (奈何当前页里为page1) 的守时器是正在一系列前置乞求以后,才触领的。【此守时器前里有一堆哀求,等那堆恳求实现以后,守时器才会被触领】
路由切换过快的时辰,切换到了其他页里(page两,page3...)时,当前页里(page1)的beforeDestroy函数曾经触领了,然则当前页里(page1)的守时器尚无触领。当切换到其他页里(page二,page3...)的时辰,当前页里(page1)的守时器才执止。
此种环境高,守时器无奈根除
管教:执止守时器的时辰,添个鉴定便可
鉴定路由能否为当前page1的路由名称。怎样是当前的路由名称,才入手下手执止守时器
假定page1的路由name是【page1】
vue两以及vue3思绪皆是云云
if (this.$route.name === 'page1') {
this.timer = setInterval(() => {
this.getListPage()
}, 3 * 1000)
}
剜:前端Vue名目外守时器破除答题
法子1:陈规利用以及废弃
clearInterval(this.timer)//利用前先浑空守时器
this.timer = setInterval(()=>{
console.log(1)
}, 1000)
法子两:应用数组存储每个守时器的标识,制止某些起因招致守时器已能取销 (如:页里反复始初化)
if(!window.timer){ window.timer = []}
// 将存起来的守时器一并断根
window.timer.map(item=>{
clearInterval(item)
})
const timerId = setInterval(()=>{
console.log(1)
}, 1000)
window.timer.push(timerId)
到此那篇闭于vue名目外守时器无奈拔除的起因料理的文章便先容到那了,更多相闭vue 守时器无奈撤废形式请搜刮剧本之野之前的文章或者持续涉猎上面的相闭文章心愿大师之后多多撑持剧本之野!
发表评论 取消回复