高防服务器

vue中如何解决使用element ui弹窗与echarts之间的问题


vue中如何解决使用element ui弹窗与echarts之间的问题

发布时间:2021-07-10 14:02:29 来源:高防服务器网 阅读:102 作者:小新 栏目:web开发

这篇文章将为大家详细讲解有关vue中如何解决使用element ui弹窗与echarts之间的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

今天项目中有个需求,就是在页面中点击一个图标,弹出一个抽屉式的弹窗(弹窗是element UI的抽屉),弹窗里边是echarts呈现的数据,当我直接用echarts的时候,报错dom没有获取到;

这就陷入疑惑,平时都是这样获取的,怎么今天就不行了呢,搜索了很多答案之后才知道,在刚进入页面的时候抽屉是关闭的,那echarts不进行获取dom,当点击抽屉出来的时候,有个opened事件,在这个事件里边进行echarts的初始化,执行数据;

<el-drawer     title="分析图表"     :modal="false"     :close-on-click-modal="false"     :modal-append-to-body="false"     size="600px"     :visible.sync="dataVisible"     @opened="opens"    >    <div ref="main" ></div>  </el-drawer>    export default {   data() {    return {     isColor: true,     option1: {      title: {       text: '总资产占比分析',       x: 'left'      },      tooltip: {       trigger: 'item',       formatter: '{a} <br/>{b} : {c} ({d}%)'      },      legend: {       orient: 'vertical',       right: '10%',       top: '35%',       data: ['A', 'B', 'C', 'D']      },      series: [       {        name: '访问来源',        type: 'pie',        radius: '70%',        center: ['25%', '60%'],        data: [         { value: 335, name: 'A' },         { value: 310, name: 'B' },         { value: 234, name: 'C' },         { value: 135, name: 'D' }        ],        label: {         normal: {          show: false,          position: 'center'         }        }       }      ]     },  }}  }  method:{    opens(){       this.$nextTick(() => {        this.pie1()     })    },    pie1(){      this.$echarts.init(this.$refs.main).setOption(this.option1)    }  }

这样防止dom没有渲染之前,数据先加载,主要是用了element ui弹窗的open方法,具体的为啥用这个方法,还需要研究下

关于“vue中如何解决使用element ui弹窗与echarts之间的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[