页面有两个Echart怎么根据窗口变化刷新
在vue中使用echarts图表组件,需要根据窗口大小进行渲染
刚开始使用了onresize的方式监听浏览器窗口大小的变化,然后通过 mychart.resize() 方法重新渲染,
mounted() {
this.drawChart()
window.onresize = () => {
this.mychart && this.mychart.resize()
}
},
发现只有最后一个图表执行了resize
最后用 addEventListener 方式绑定的 resize 方式是正常的
mounted () {
this.drawChart();
window.addEventListener('resize',()=>{
this.mychart && this.mychart.resize()
})
},
结论:
on和addEventListener 的区别
一般情况下,on和addEventListener绑定的功能是一样的,如果一个标签上绑定两个相同事件,on方式的绑定最后一个事件会覆盖掉上面的事件,addEventListener 则不会,原理是将实现EventListener的函数或对象添加到调用它的EventTarget上的指定事件类型的事件侦听器列表中,会依次执行,不会覆盖以前的事件