VUE踩坑之旅_定时器&&基于原型链的简单订阅发布

259 阅读1分钟

一个组件中定义的定时器 在销毁了这个组件后依然存在 因为其依赖于window之中 

所以如果离开后不想要定时器,需要在钩子destroyed处调用clearxxx函数清除定时器。


以及附加的一个项目需求 ,想要在页面resize时触发一些操作,比如其中图表的缩放chart.setOption(this.$pro, this.optionObj); chart.resize();

使用最原始的数组方式无脑push实现的。没有对象。

出现了离开组件重新进入后数组的重叠寻报错问题。

在路由守卫beforeRouteLeave中使用 this.$notice.splice(0 ,length)实现重置。


因为不想要用vuex加watch来触发,所以就使用了这种方式,在main.js(扔到别的地方也行,抽出去也行)处发布(遍历),在各个组件中通过对原型访问直接找到$notice数组进行push订阅。