v-if和updated钩子结合使用 渲染echart图表

项目需求是这样的,用户可以自定选择echart 曲线图 是横向还是竖向显示。我的做法是 写了一个横向的echart图表,也写了一个竖向的echart图表,然后两者共用存在store里的图表数据,就能实现切换显示了。

实际项目中发现的问题是如果用v-show 切换两个图表,后来显示的会因为没有高度 而没有办法撑开。

解决办法 换成v-if,因为v-if重新改了dom,所以图表可以重新获取高度从而重新渲染图表,实现图表的切换,  但是切换后的图表 没有数据了。

解决办法  用v-if切换图表,并且在updated 钩子函数中再给store的里面的来重新赋予数值。

代码如下:template中

    <div>
      <el-button type='primary' @click="testIf=!testIf">test</el-button>
    </div>
    <div class="testLeft" v-if="testIf">
      <vertical-chart :style="{width:'300px',height:'400px'}"></vertical-chart>
    </div>
    <div class="testLeft" v-else>
      <line-chart :style="{width:'400px',height:'300px'}"></line-chart>
    </div>

在 script中

  updated(){
     //更改store里的数值
  }

 

posted @ 2018-08-28 09:49  Ada_Blog  阅读(1000)  评论(0编辑  收藏  举报