?之前在vue結(jié)合echarts的項目中遇到一個問題,我在切換路由時進行chrome快照,發(fā)現(xiàn)每次切換路由內(nèi)存穩(wěn)步增加十幾兆,后面結(jié)合快照分析發(fā)現(xiàn)是echarts內(nèi)存泄漏的問題。
this.chart=echarts.init(document.getElementById(dom));
var option={
//.....................
}
this.chart.setOption(option);
?在頁面中總共使用了十幾個圖表,由于在每次加載路由時,對每個圖表進行了初始化,創(chuàng)建了echarts實例,但是在銷毀組件的時候并沒有銷毀echarts實例。查詢資料,官方提供了dispose()方法對實例進行銷毀,并釋放了實例。用上過后,內(nèi)存果然不再增長。
beforeDestory(){
echarts.dispose(this.chart);
this.chart = null;
}
注:因為dispose是完全對實例進行了銷毀,所以假如要重新構(gòu)建echarts需要重新使用init方法進行初始化.