广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue中的echarts图表如何实现loading效果
  • 344
分享到

Vue中的echarts图表如何实现loading效果

Vueecharts图表Vueloading效果echarts图表实现loading 2022-11-13 14:11:52 344人浏览 薄情痞子
摘要

目录echarts图表实现loading效果Vue使用echarts图表总结安装echarts依赖创建图表在页面中的使用(在这里我用的局部引入)echarts图表实现loading效

echarts图表实现loading效果

main.js 中配置Vue属性ecahrts

// 引入echarts
import echarts from 'echarts'
Vue.prototype.$echarts = echarts 
  • data() 初始化数据调用数据
  • mounted() 周期函数内获取画布节点,并且调用加载loading和图表渲染
  • computed计算属性内定义echarts渲染内容以及数据请求

服务器返回数据 hideLoading()

注意:loading方法要定义在计算属性的get方法中,set可以不做任何定义。这样图表于loading样式在画布上不会冲突

    <template>
        <div>
            <div class="echarts-wrap">
                <div id="dev-echarts"></div>
            </div>
        </div>
    </template>
    <script>
        export default {
            name: "echarts",
            data() {
                return {
                    one: [],
                    two: [],
                    three: [],
                    four: []
                }
            },
            mounted() {
                this.echartsG = this.$echarts.init(document.getElementById('dev-echarts'), 'dark');
                this.loading
                this.initDrawDevEchart
            },
            computed: {
                initDrawDevEchart() {
                    this.$axiOS.get("getEchartsUrl", {
                        params: {
                            id: 1
                        }
                    }).then((response) => {
                        this.one= response.data.one
                        this.two= response.data.two
                        this.three= response.data.three
                        this.xAxis= response.data.xaxis
    
                        this.echartsG.hideLoading()
                        let optionG = {
                            backgroundColor: 'rgba(128, 128, 128, 0)',
                            title: {
                                text: 'loading效果演示',
                            },
                            dataZoom: {},
                            tooltip: {
                                trigger: 'axis'
                            },
                            legend: {
                                data: ['一', '二', '三']
                            },
                            xAxis: {
                                type: 'cateGory',
                                // 调整柱状图位置
                                boundaryGap: true,
                                data: this.xAxis
                            },
                            yAxis: {
                                type: 'value',
                                axisLabel: {
                                    fORMatter: '{value}'
                                }
                            },
                            series: [
                                {
                                    name: '一',
                                    type: 'bar',
                                    data: this.one,
                                },
                                {
                                    name: '二',
                                    type: 'bar',
                                    data: this.two
                                },
                                {
                                    name: '三',
                                    type: 'bar',
                                    data: this.three
                                }
                            ]
                        };
                        this.echartsG.setOption(optionG);
                    }).catch((err => {
                        console.log(err)
                    }))
    
                },
                loading: {
                    get: function () {
                        this.echartsG.setOption({
                            backgroundColor: 'rgba(128, 128, 128, 0)',
                            legend: {
                                data: ['一', '二', '三']
                            },
                            xAxis: {
                                type: 'category',
                                boundaryGap: true,
                                data: []
                            },
                            yAxis: {
                                type: 'value',
                                axisLabel: {
                                    formatter: '{value}'
                                }
                            },
                            series: [
                                {
                                    name: '一',
                                    type: 'bar',
                                    data: []
                                },
                                {
                                    name: '二',
                                    type: 'bar',
                                    data: []
                                },
    
                                {
                                    name: '三',
                                    type: 'bar',
                                    data: []
                                }
                            ]
    
                        });
                        this.echartsG.showLoading({
                            text: '统计中,请稍候...'
                            , maskColor: 'rgba(3,3,8,0.5)',
                            textColor: '#fff600'
                        });
                    },
                    set(e) {
                    }
                }
            }
        }
</script>    

Vue使用echarts图表总结

今天在写后台项目的时候,使用echarts来绘制图表。下面来说说怎么使用echarts。

echarts地址:https://echarts.apache.org/zh/index.html

效果

在这里插入图片描述

代码

在vue项目中使用echarts图表的步骤:

安装echarts依赖

npm install echarts -S

或者使用淘宝的镜像

npm install -g cnpm --reGIStry=Https://registry.npm.taobao.org
cnpm install echarts -S

创建图表

一、全局引入

在main.js中

// 引入echarts
import echarts from 'echarts'
Vue.prototype.$echarts = echarts

二、局部引入(在需要的页面中引入)

import echarts from "echarts";

在页面中的使用(在这里我用的局部引入)

完整的代码

<template>
  <div>
    <!-- 面包屑 -->
    <BreadCrumb level1="数据统计" level2="数据报表"></BreadCrumb>
    <!-- 内容 -->
    <el-card style="margin-top:20px;">
      <!-- 为Echarts准备一个Dom -->
      <div id="main" style="width: 750px;height:400px;"></div>
    </el-card>
  </div>
</template>
<script>
import { getReports } from "../../http/api";
import echarts from "echarts";
import _ from "lodash";
export default {
  data() {
    return {
      // 需要合并的数据
      options: {
        title: {
          text: "用户来源"
        },
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "cross",
            label: {
              backgroundColor: "#E9EEF3"
            }
          }
        },
        grid: {
          left: "3%",
          right: "4%",
          bottom: "3%",
          containLabel: true
        },
        xAxis: [
          {
            boundaryGap: false
          }
        ],
        yAxis: [
          {
            type: "value"
          }
        ]
      }
    };
  },
  mounted() {
    this.reports();
  },
  methods: {
    async reports() {
      var myChart = echarts.init(document.getElementById("main"));
      const res = await getReports();
      console.log(res);
      const resultJieg = _.merge(res.result, this.options);
      //   展示数据
      myChart.setOption(resultJieg);
    }
  }
};
</script>
<style></style>

解释

1、需要在页面上给一个挂载点

		<!-- 为Echarts准备一个Dom -->
      <div id="main" style="width: 750px;height:400px;"></div>

2、在data里面定义一下

// 需要合并的数据
      options: {
        title: {
          text: "用户来源"
        },
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "cross",
            label: {
              backgroundColor: "#E9EEF3"
            }
          }
        },
        grid: {
          left: "3%",
          right: "4%",
          bottom: "3%",
          containLabel: true
        },
        xAxis: [
          {
            boundaryGap: false
          }
        ],
        yAxis: [
          {
            type: "value"
          }
        ]
      }

3、初始化数据

  mounted() {
    this.reports();
  },
  methods: {
    async reports() {
    //获取在页面中挂载的数据
      var myChart = echarts.init(document.getElementById("main"));
      //调用接口(即后台返回的数据)
      const res = await getReports();
      console.log(res);
      //使用lodash来合并数据
      const resultJieg = _.merge(res.result, this.options);
      //   展示数据
      myChart.setOption(resultJieg);
    }
  }

总结一下:

在vue中使用echarts图表,分为二步:

1.在页面中给图表一个挂载的元素。

2.在mounted的函数里初始化数据。

  • 通过echarts.init来拿到页面中挂载的节点。
  • 调用数据
  • 最后通过setOption来展示数据。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Vue中的echarts图表如何实现loading效果

本文链接: https://www.lsjlt.com/news/172302.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue中的echarts图表如何实现loading效果
    目录echarts图表实现loading效果Vue使用echarts图表总结安装echarts依赖创建图表在页面中的使用(在这里我用的局部引入)echarts图表实现loading效...
    99+
    2022-11-13
    Vue echarts图表 Vue loading效果 echarts图表实现loading
  • Vue Echarts实现带滚动效果的柱形图
    本文实例为大家分享了Vue Echarts实现带滚动效果柱形图的具体代码,供大家参考,具体内容如下 代码 <template>   <div class="time...
    99+
    2022-11-13
  • 基于Echarts如何实现饼图效果
    这篇文章主要讲解了“基于Echarts如何实现饼图效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于Echarts如何实现饼图效果”吧!1 显示数值效果 series 下的label 饼...
    99+
    2023-06-30
  • 如何实现php+loading效果
    小编给大家分享一下如何实现php+loading效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   首先准备一段loading的html:   动手实现一个网页加载进度loadin...
    99+
    2022-10-19
  • vue+echarts实带渐变效果的折线图
    本文实例为大家分享了vue+echarts实带渐变效果折线图的具体代码,供大家参考,具体内容如下 1、安装echarts npm install echarts --save 2、...
    99+
    2022-11-13
  • jQuery插件Echarts如何实现双轴图效果
    这篇文章主要介绍jQuery插件Echarts如何实现双轴图效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:1、问题描述:利用Echarts制作一个折线图,条件是:三条折...
    99+
    2022-10-19
  • vue+echarts怎么实带渐变效果的折线图
    本篇内容主要讲解“vue+echarts怎么实带渐变效果的折线图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue+echarts怎么实带渐变效果的折线图”吧!效果如下:1、安装echarts...
    99+
    2023-06-29
  • CSS3如何实现loading动画效果
    这篇文章主要为大家展示了“CSS3如何实现loading动画效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS3如何实现loading动画效果”这篇文章吧...
    99+
    2022-10-19
  • CSS如何实现loading动画效果
    这篇文章主要介绍CSS如何实现loading动画效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:预览代码使用了CSS的keyframes自定义关键帧动画<!DOCT...
    99+
    2022-10-19
  • Vue Echarts如何实现多功能图表绘制
    这篇文章主要介绍“Vue Echarts如何实现多功能图表绘制”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue Echarts如何实现多功能图表绘制”文章能帮助大家解决问题。...
    99+
    2023-07-05
  • jQuery插件echarts如何实现多折线图效果
    这篇文章主要介绍jQuery插件echarts如何实现多折线图效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:1、问题背景:设计一个折线图,折线图展示苹果、香蕉的销售量2...
    99+
    2022-10-19
  • Vue中如何实现轮播图效果
    这篇文章将为大家详细讲解有关Vue中如何实现轮播图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Vue 过渡Vue 的过渡系统是内置的,在元素从 DOM 中插入或移除...
    99+
    2022-10-19
  • 如何使用纯CSS实现饼状Loading等待图效果
    这篇文章将为大家详细讲解有关如何使用纯CSS实现饼状Loading等待图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:原理这个东西分为两部分:外圈和内圆。颜色这东西都自定义啦,不过我画的的圈圈...
    99+
    2023-06-08
  • Android中Market的Loading效果实现方法
    本文实例讲述了Android中Market的Loading效果实现方法。分享给大家供大家参考。具体如下: 在Android中,要实现Loading效果,一般情况下都使用Prog...
    99+
    2022-06-06
    market 方法 loading Android
  • vue-echarts如何实现图表组件封装详解
    目录背景:有哪些工具?怎么封装?总结背景: 需要大量使用图表的项目,为了提升开发效率,可以对图表类进行封装成组件,方便页面的搭建,也能进行统一管理维护,即使后面系统风格需要调整,调整...
    99+
    2022-11-13
  • vue实现echarts中的仪表盘
    本文实例为大家分享了vue实现echarts中的仪表盘的具体代码,供大家参考,具体内容如下 最终结果 一、安装 1. 首先需要安装echarts依赖包 npm install ec...
    99+
    2022-11-13
  • jQuery插件echarts如何实现循环生成图效果
    这篇文章给大家分享的是有关jQuery插件echarts如何实现循环生成图效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、问题背景:利用for循环生产多个气泡图,并且每个气...
    99+
    2022-10-19
  • Vue实现Echarts图表宽高自适应的实践
    目录1. 安装并引入2. 定义防抖函数3.  绘制图表代码init 方法resize 方法官网解释1. 安装并引入 npm install echarts --sav...
    99+
    2022-11-12
  • 如何使用CSS实现打点Loading效果
    本篇内容主要讲解“如何使用CSS实现打点Loading效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用CSS实现打点Loading效果”吧!基于box...
    99+
    2022-10-19
  • css如何实现叶子形状loading效果
    小编给大家分享一下css如何实现叶子形状loading效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:<!do...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作