vue 中解决多个echarts图表自适应问题

<div class="echarts">
  <IEcharts :option="bar" ref="echarts"></IEcharts>

</div>

mounted () {
      this.selfAdaption ()
    },
    methods: {
      //echarts自适应
      selfAdaption ()  {
        const self = this;
        setTimeout(() => {
          window.onresize = function () {
            self.$refs.echarts.resize()
          }
        }, 10)
      }

}

上面这段代码在出现多个echarts图表时只有一个图表自适应,修改了一下

 

<div class="echarts">
  <IEcharts :option="bar" ref="echarts"></IEcharts>
</div>
 
mounted () {
      this.selfAdaption ();
},
methods: {
   //echarts自适应
   selfAdaption ()  {
     let _this = this;
     setTimeout(() => {
         window.addEventListener('resize', function () {
            _this.$refs.echarts.resize();
         })
      }, 10)
    }
  }

 

------------------------------------------------------------------------------------------------------------------------------------

在vue中引入多个echart图表时

<div class="linebox">

<div :id="id" style="width:100%; height:100%;" ref="Echart"></div>

</div>



methods: {

    init(){

    const self = this;//因为箭头函数会改变this指向,指向windows。所以先把this保存

    setTimeout(() => {

        window.addEventListener('resize', function() {

             self.chart = self.$echarts.init(self.$refs.Echart);

              self.chart.resize();

        })

      },10)

    }

}

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue2,可以使用echarts来实现多个图表自适应。以下是一个简单的示例: 1. 首先,安装echartsvue-echarts插件: ```bash npm install echarts vue-echarts ``` 2. 在Vue组件引入echartsvue-echarts: ```javascript import echarts from 'echarts' import ECharts from 'vue-echarts/components/ECharts.vue' ``` 3. 在Vue组件注册ECharts组件: ```javascript export default { components: { 'v-chart': ECharts }, data() { return { chartData: [ // 填充你的图表数据 ] } }, mounted() { window.addEventListener('resize', this.handleResize) }, beforeDestroy() { window.removeEventListener('resize', this.handleResize) }, methods: { handleResize() { this.$refs.chart.resize() } } } ``` 4. 在Vue模板使用ECharts组件来渲染图表: ```html <template> <div> <v-chart ref="chart" :options="chartOptions"></v-chart> </div> </template> ``` 5. 在Vue组件的计算属性定义图表的配置选项: ```javascript computed: { chartOptions() { return { // 填充你的图表配置选项 series: this.chartData } } } ``` 6. 最后,确保在窗口大小改变时调用`handleResize`方法来重新渲染图表: ```javascript mounted() { window.addEventListener('resize', this.handleResize) }, beforeDestroy() { window.removeEventListener('resize', this.handleResize) }, methods: { handleResize() { this.$refs.chart.resize() } } ``` 通过以上步骤,你可以在Vue2实现多个echarts图表自适应。你可以根据自己的需求,动态更新图表数据和配置选项。记得在窗口大小改变时重新渲染图表
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值