echarts第二次渲染不出来的原因

简介: echarts第二次渲染不出来的原因

场景描述


echarts主要用于数据可视化展示


有些时候,我们可能会根据不同的条件,在页面上进行显示和隐藏。


比如说:页面最初展示了数据,当我点击不同的按钮的时候。


echarts会对应的展示或者隐藏。


下面当我点击单个机构的时候。


echarts会隐藏,点击多个机构的时候,echarts会展示出来。


使用v-show在本地没有问题但是上线后第二次不能够正确显示


<template>
    <div>
        <el-button type="primary" @click="handerDemo(1)">单个机构</el-button>
        <el-button type="primary" @click="handerDemo(2)">多个机构</el-button>
        <div id="demo" v-if="showFlag"></div>
    </div>
</template>
<script>
import echarts from 'echarts'
    export default {
        data() {
            return {
                showFlag:true
            }
        },
        created(){
            // 我的请求,模拟的数据,大家不同管它
            this.$api.get("http://127.0.0.1:666/newlist", {
                params: {
                    id: '213'
                }
            }).then(res=>{
               //调用echarts
               console.log(res )
               this.initEcharts()
            })
        },
        mounted() {
        },
        methods: {
            initEcharts() {
                let demo = echarts.init(document.getElementById("demo"))
                var option = {
                            tooltip: {
                                trigger: 'item',
                                formatter: '{a} <br/>{b}: {c} ({d}%)'
                            },
                            toolbox: {
                                feature: {
                                    saveAsImage: {
                                        pixelRatio: 2
                                    }
                                }
                            },
                            series: [
                                {
                                    name: '访问来源',
                                    type: 'pie',
                                    radius: ['50%', '70%'],
                                    avoidLabelOverlap: false,
                                    label: {
                                        show: false,
                                        position: 'center'
                                    },
                                    emphasis: {
                                        label: {
                                            show: true,
                                            fontSize: '30',
                                            fontWeight: 'bold'
                                        }
                                    },
                                    labelLine: {
                                        show: false
                                    },
                                    //饼图每个板块之间有间隔
                                    itemStyle: {
                                        borderWidth: 2, //设置border的宽度有多大
                                        borderColor: '#fff',//间隙颜色
                                    },
                                    data: [
                                        {value: 335, name: '直接访问'},
                                        {value: 310, name: '邮件营销'},
                                        {value: 234, name: '联盟广告'},
                                        {value: 135, name: '视频广告'},
                                        {value: 1548, name: '搜索引擎'}
                                    ]
                                }
                            ]
                };
                demo.setOption(option);
            },
            // 用于展示和隐藏哈
            handerDemo(type){
                if(type==1){
                    this.showFlag=false;
                    console.log(1)
                }else{
                    console.log(1)
                    this.showFlag=true;
                }
            }
        },
    }
</script>
<style lang="scss" scoped>
#demo{
    width: 600px;
    height: 400px;
    background: pink;
}
</style>


1425695-20210826204057821-11372006.gif


为什么第二次显示不出来


大家看见了刚刚的图片,我们发现当我点【单个机构】这个按钮的时候。


ecgarts正确隐藏了。


但是当我点击多个机构的时候。echarts却没有正确的显示出来。


大家不觉得很奇怪吗???


为啥会有这样的想象????


经过本人的大量实践,发现问题的原因,也找到了解决的办法。


如果装echarts的容器div上使用v-show,或者没有使用v-show


那么echarts第二次就不能够正确的显示出来


即使A页面显示echarts;然后去B页面;在返回A页面;


A页面的echrts的不能够正确的显示出来(这种情况会发生在打包后,在开发环境ok的)

相关文章
|
11月前
|
JSON JavaScript 前端开发
Echarts高级进阶教程(2):appendData异步加载大数据量分片加载数据和增量渲染的解决方案
Echarts高级进阶教程(2):appendData异步加载大数据量分片加载数据和增量渲染的解决方案
732 0
|
11月前
|
数据可视化
Echarts高级进阶教程(3):appendData大数据量分片加载数据增量渲染和常规思路异步加载数据的对比,对折线图是无效的
Echarts高级进阶教程(3):appendData大数据量分片加载数据增量渲染和常规思路异步加载数据的对比,对折线图是无效的
214 0
|
11月前
|
JavaScript 定位技术 容器
vue.js实战案例(1):外部直接引入渲染echarts地图的实战案例
vue.js实战案例(1):外部直接引入渲染echarts地图的实战案例
66 0
|
1月前
|
JavaScript
Echarts渲染不报错但是没有内容
Echarts渲染不报错但是没有内容
102 0
Echarts渲染不报错但是没有内容
|
7月前
|
JSON 数据格式
ECharts折线图渲染json格式数据(格式为对象)
ECharts折线图渲染json格式数据(格式为对象)
72 0
|
7月前
|
JSON 数据格式
ECharts折线图渲染json格式数据(格式为数组)
ECharts折线图渲染json格式数据(格式为数组)
57 0
|
11月前
|
开发框架 JSON 数据可视化
Python Flask Echarts数据可视化图表实战晋级笔记(1)HTML页面渲染与参数传递
Python Flask Echarts数据可视化图表实战晋级笔记(1)HTML页面渲染与参数传递
176 1
|
12月前
|
JavaScript 数据可视化
datav和echarts一起使用时,在datav的组件里获取不到dom元素,导致无法渲染echarts
记录一个小问题,datav和echarts一起使用时,在datav的组件里获取不到dom元素
238 1
|
11月前
|
前端开发 JavaScript API
ajax异步加载获取数据与Echarts渲染图表的两种解决方案
ajax异步加载获取数据与Echarts渲染图表的两种解决方案
113 0
|
11月前
|
数据格式
Echarts实战案例代码(44):同时渲染折线图实现和虚线渲染实现已发生和预测趋势的解决方案
Echarts实战案例代码(44):同时渲染折线图实现和虚线渲染实现已发生和预测趋势的解决方案
174 0

热门文章

最新文章