vue 单个页面中引用多个echarts实现自适应
在vue某个数据展示页面,使用了多个echarts图表,使用onresize方法只能够让最后一个图表随着窗口大小自适应在解决问题的过程中发现的一些问题一、第一种开始我在每个图表组件的方法里面定义myChart,如下methods:{setchart(){const option{}let myChart ...
·
在vue某个数据展示页面,使用了多个echarts图表,使用onresize方法只能够让最后一个图表随着窗口大小自适应
在解决问题的过程中发现的一些问题
一、第一种
开始我在每个图表组件的方法里面定义myChart,如下
methods:{
setchart(){
const option{
}
let myChart = this.$echarts.init(document.getElementById('r-biao1'));
myChart.setOption(option);
window.onresize = function() {
myChart.resize();
};
}
}
上面的代码只有最后一个图表会刷新,将window.onresize改为下面的代码
window.addEventListener("resize",function(){
myChart.resize();
})
正确代码
methods:{
setchart(){
const option{
}
let myChart = this.$echarts.init(document.getElementById('r-biao1'));
myChart.setOption(option);
window.addEventListener("resize",function(){
myChart.resize();
})
}
}
二、第二种
我把mychart在data里定义,用this调用
data() {
return {
myChart: null,
}
},
methods:{
setchart(){
const option{
}
this.myChart = this.$echarts.init(document.getElementById('r-biao3'));
this.myChart.setOption(option);
window.addEventListener("resize",function(){
this.myChart.resize();
})
}
}
这个也是最后一个可自适应,最后发现是this的问题
正确代码
data() {
return {
myChart: null,
}
},
methods:{
setchart(){
const option{
}
const that=this
this.myChart = this.$echarts.init(document.getElementById('r-biao3'));
this.myChart.setOption(option);
window.addEventListener("resize",function(){
that.myChart.resize();
})
}
}
以上是我尝试出来可行的方法以及问题
更多推荐
已为社区贡献10条内容
所有评论(0)