setInterval 是间隔调用,与之类似的还有 setTimeout。这两个 API 通常用来做 ajax 短连接轮询数据。beforeDestory 是组件销毁前的生命周期的钩子,这个钩子函数一定会调用,但是能不能彻底销毁 setTimeout 呢?打开控制台就能看到不断打印出来的 id这是因为,每次使用 clearTimeout 清除掉的是上一次的 id, 而不是本次正要执行的,这种情况,对于使用 setInterval 也是一样的。根本原因在于,每次调用 getData, this.timer 是在不断的被赋予新的值,而不是一成不变的。我们可以通过 程序化的事件侦听器 来监听销毁我们创建的任何代码示例除了 setTimeout 和 setInterval ,通常还有一些第三方库的对象示例,如 timePicker,datePicker,echarts图表等。

vue 实现setInterval 创建和销毁实例

vue 实现setInterval 创建和销毁实例

vue 实现setInterval 创建和销毁实例