echarts显示隐藏切换导致的图形太小的解决办法

echarts显示隐藏切换导致的图形太小的解决办法

先上代码

		<div
          class="line-chart"
          ref="lineChart"
          v-show="chartData && chartData.inspectData && chartData.hiddenDangerData && (chartData.inspectData.length !==0 || chartData.hiddenDangerData.length !==0)">
        <line-stack-chart
            :chart-data="chartData"
            :ref-dom="refDom"
            :dimensions="dimensions"/>
      </div>
      <div
          class="empty-box"
          v-show="(!chartData || !chartData.inspectData || chartData.inspectData.length === 0) && ( !chartData || !chartData.hiddenDangerData || chartData.hiddenDangerData.length ===0)">
       <p>无数据</p>
      </div>

导致出现的bug是 当显示图表无数据时,打开F12展示调试工具,再查有数据的图表,会导致图表变形 如下图
在这里插入图片描述
echarts图表明显变形

解决方案: 将v-show 改成v-if

<div
          class="line-chart"
          ref="lineChart"
          <!-- v-show 改成v-if-->
          v-if="chartData && chartData.inspectData && chartData.hiddenDangerData && (chartData.inspectData.length !==0 || chartData.hiddenDangerData.length !==0)">
        <line-stack-chart
            :chart-data="chartData"
            :ref-dom="refDom"
            :dimensions="dimensions"/>
      </div>
      <div
          class="empty-box"
          v-if="(!chartData || !chartData.inspectData || chartData.inspectData.length === 0) && ( !chartData || !chartData.hiddenDangerData || chartData.hiddenDangerData.length ===0)">
       <p>无数据</p>
      </div>

总结:

v-show和v-if的区别在于:
v-show不满足条件的元素会存在在DOM树中,只是display属性改成none;
但v-if不满足条条件的元素不会存在在DOM树中;


版权声明:本文为weixin_43572973原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。