解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
如果在两个页面之间来回跳转,跳转时间小于定时器的间隔时间时,也会出现重复创建setTimeout的情况。当我们刷新页面时,会将当前页面之前创建的setTimeout以及其他定时器都清除掉,但是仅仅是路由切换是不会清除的。说一下最近开发中遇到的问题,我是用vue开发的,顺便记录这个错误。我需要轮询接口,所以使用setInterval。但实际的运行结果是,只执行了一遍,并没有循环执行。理论上这样是没问题的,会每2秒执行一次this.myFunc(),但却报错了。原因是 老生常谈的javaScript 的this 的问题。用过vue的朋友应该,基本vue中都是this.XXX这样写。最终尖头函数因为它的特殊性,它的this指向它外层的对象。其实主要说的是第二个问题,第一个属于对函数不熟悉,第二个则是VUE,ES6,this指向综合的问题。
用户评论