Echarts的resize事件报错
原因:echart的api只有在实例化之后才能调用,如果直接调用肯定会导致报错
解决方式:在调用resize的之前判断是否已经实例化
this.barchart = this.$echarts.init(dom) // 实例化Echarts对象
/****************/
if(this.barchart) { // 方法一
this.syqchart.resize()
}
/****************/
this.syqchart && this.syqchart.resize() // 方法二
/****************/
移除windows的resize事件
一般在使用echart图表时都会去监听窗口大小的变化,以之来实现图表的重新绘制。但是当添加了window事件之后,离开了当前页面,也依然会继续监听并且执行事件的回调函数,这样就会导致浏览器CPU的占用,页面卡顿。
解决方式:
resizeHandler(){ // methods中定义事件处理函数(必须将处理函数提取出来,这样在移除的时候就能通过指针找到该处理函数)
this.barchart && this.barchart.resize()
this.linechart && this.linechart.resize()
}
mounted() { // 页面加载注册事件
window.addEventListener('resize', this.resizeHandler, false)
}
beforeDestroy() { // 页面离开移除事件
window.removeEventListener('resize', this.resizeHandler)
}