bug解决记录——页面切换后定时器没有销毁

  前几天我给首页(路由为/home)添加了一个定时器,但是我发现“/home”下跳转到“/home/order-manage”时该定时器不仅没有被清除,反而定时器被触发的时间间隔从我设定的5秒,变成了2、3秒,一开始我以为是调用定时器的库有问题,但是回想到没有改变路由之前,定时器调用的时间间隔一直是准确的。。此时我一直在调试定时器封装库的代码,而后发现created钩子居然被调用了两次,但是destroy却没有被触发,这个时候我明白了为什么定时器触发的时间间隔会变短,原因就在于创建多了一个定时器,所以两个定时器被间隔触发,看起来就好像间隔变短了。
  destroy没有被触发的原因:一开始我定位的是在同个页面下,destroy中的代码没有被执行(因为当时注意到的是这两个路由指向的是同个页面,只是内容不同,现在想来这个想法好愚蠢,路由都变了,组件肯定是有被重新调用的,至于/home下的destroy没有被执行,这是因为使用了keep-alive)。
  所以之后在公共组件(被两个页面同时使用)中使用定时器,需要监听路由的变化来判断是否要创建、销毁定时器,而不能直接创建定时器。同时,在涉及到页面之间跳转的bug时,要多考虑路由方面的问题