在项目上遇到这么一个问题,由于页面需要获取的数据大从而导致页面完成加载的速度过慢,而展示的图表需要通过后端获取的数据才能进行展示。在未加载完成的时候切换到其他子页面后,图表页面加载完成。
在这种情况下需要通过使用ref来获取该图表盒子信息,若使用getelemntbyid会报错获取不到该盒子信息。
<div ref="chart1"></div>
this._chart = echarts.init(this.$refs.chart1)
这样就可以解决报错问题。但是图表没有数据展示。即便点击其他选项也没有数据展示,需要通过挤压该盒子的大小才能展示。
所以我通过重新获取该盒子的大小来解决该问题。
let width = this.$refs.chart1.offsetWidth
let height = this.$refs.chart1.offsetWidth
this._chart.resize(width,height);
这样便可以解决图表因没有获取到宽高无法展示图表信息的问题了
如有需要,当然最好是在最后加上
window.addEventListener("resize", () => { this._chart.resize();});
实时根据该盒子的宽高改变图表大小