vue-echarts解决自适应和初始宽度超出问题(去坑精华版)

前言

自适应这个东西整了一下午,感觉网上的东西有很多坑,这里记录一下

技术

1.vue-echarts

这里用的vue与echarts结合的组件化的东西

代码

1.页面

    <v-chart
      :options="orgOptions"
      style="width: 100%;height:100%;"
      :auto-resize="true"
      ref="chart"
    />

这里的style是必须的,意思是填充上一层盒子
ref也是必要的,后面回用到这里。
2.js–mounted
1)初始时适应

    this.$nextTick(() => {
       this.$refs.chart.resize();
      })

this.$refs.chart.resize()这个是官网给的自适应方法,
这里的核心是$nextTick,页面渲染完成后执行这个自适应函数
2)窗口变化时适应

window.addEventListener("resize", this.resizeTheChart);//这句在mounted中

methods中:

 resizeTheChart() {
      if (this.$refs && this.$refs.echarts1) {
        this.$refs.echarts1.resize();
      }

这里时给窗口添加自适应函数监听,有了这句改变屏幕大小时,画布也会随着改变。

总结

网上给的自适应解决方案全都是只给出了窗口自适应的问题,事实上也能解决窗口自适应,但是第一次渲染的时候会出现不适应的问题,这就要用nextTick去解决。
查了一下,这个下载的vue-echarts他给的默认长宽是600px*400px,如果外等盒子的长宽比这个小的话那么就会超出,而这个自适应函数本身是解决这个问题的,但是它貌似是异步的,如果只单单在mounted中写一次,那它会在画布生成前执行一次,就不能达到想要的效果。
说完了,有点绕,不懂的留言吧

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值