vue中使用echarts 动态渲染数据

news2024/11/26 12:15:50

一、业务场景:
最近在vue中使用echarts时 引入的时候怎么也引不上,后面发现需要绑定在原型上就可以完美解决(也可以直接在需要引入的页面用ES5中的require引入require(‘echarts’))
为了避免大家走弯路,下面整合了一下echarts 在vue框架中的使用步骤
二、具体实现步骤:
1、先在终端安装echarts

npm install echarts --save

2、在main.js中引入(这里分5.0以上和以下两个版本来安装)

5.0以上版本

  import * as echarts from 'echarts'

5.0以下版本

  import  echarts  from 'echarts'

注册在原型上 `

 vue.prototype.$echarts   = echarts

3、在html部分留一个div容器来承载画布

  <div id="main" style="width: 500px;height:400px;"></div>

4、把要实现的代码放入函数中

   init() {
   //调接口
        quShiPic({})
          .then(res => {
            console.log(res)
            const { data, count, code, msg } = res
            if (msg == 'success') {
              this.quLineLists = data
              console.log(this.quLineLists)
              console.log(this.quLineLists[0].data)
              console.log(this.quLineLists[1].data)
              console.log(this.quLineLists[2].data)
              // 基于准备好的dom,初始化echarts实例
              var myChart = this.$echarts.init(
                document.getElementById('main')
              )
              // 配置option选项
              var option = {
                title: {
                  text: '热力变化曲线'
                },
                tooltip: {
                  trigger: 'axis'
                },
                legend: {
                  data: ['全部', '人', '物']
                },
                grid: {
                  left: '3%',
                  right: '2%',
                  bottom: '3%',
                  containLabel: true
                },
                toolbox: {
                  feature: {
                    saveAsImage: {}
                  }
                },
                xAxis: {
                  type: 'category',
                  boundaryGap: false,
                  data: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
                },
                yAxis: {
                  type: 'value'
                },
                series:
                  [
                    {
                      name: '全部',
                      type: 'line',
                      stack: 'Total',
                      smooth: true,
                      // data: [120, 132,0, 101, 134, 90,0, 230, 210]
                      data: this.quLineLists[0].data
                    },
                    {
                      name: '人',
                      type: 'line',
                      smooth: true,
                      stack: 'Total',
                      // data: [220, 182, 191, 234, 290, 330, 310]
                      data: this.quLineLists[1].data
                    },
                    {
                      name: '物',
                      type: 'line',
                      stack: 'Total',
                      smooth: true,
                      // data: [150, 232, 201, 154, 190, 330, 410]
                      data: this.quLineLists[2].data
                    }
                  ]
              }
              // 把配置option选项用js放进dom节点
              myChart.setOption(option)
            }
          }).catch((err) => {
          console.log(err)
        })
      },

5、页面加载的时候调用功能函数(mounted生命周期里)

    mounted() {
      this.init()
    },

三、完整代码:

<template>
  <div>
    <div id="main" style="width: 600px;height:400px;"></div>
  </div>
</template>
<script>
  export default {
    name: 'WhiteName',
    data() {
      return {}
    },
    mounted() {
      this.init()
    },
    methods: {
   getLine() {
        quShiPic({})
          .then(res => {
            console.log(res)
            const { data, count, code, msg } = res
            if (msg == 'success') {
              this.quLineLists = data
              console.log(this.quLineLists)
              console.log(this.quLineLists[0].data)
              console.log(this.quLineLists[1].data)
              console.log(this.quLineLists[2].data)
              // 基于准备好的dom,初始化echarts实例
              var myChart = this.$echarts.init(
                document.getElementById('main')
              )
              // 配置option选项
              var option = {
                title: {
                  text: '热力变化曲线'
                },
                tooltip: {
                  trigger: 'axis'
                },
                legend: {
                  data: ['全部', '人', '物']
                },
                grid: {
                  left: '3%',
                  right: '2%',
                  bottom: '3%',
                  containLabel: true
                },
                toolbox: {
                  feature: {
                    saveAsImage: {}
                  }
                },
                xAxis: {
                  type: 'category',
                  boundaryGap: false,
                  data: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
                },
                yAxis: {
                  type: 'value'
                },
                series:
                  [
                    {
                      name: '全部',
                      type: 'line',
                      stack: 'Total',
                      smooth: true,
                      // data: [120, 132,0, 101, 134, 90,0, 230, 210]
                      data: this.quLineLists[0].data
                    },
                    {
                      name: '人',
                      type: 'line',
                      smooth: true,
                      stack: 'Total',
                      // data: [220, 182, 191, 234, 290, 330, 310]
                      data: this.quLineLists[1].data
                    },
                    {
                      name: '物',
                      type: 'line',
                      stack: 'Total',
                      smooth: true,
                      // data: [150, 232, 201, 154, 190, 330, 410]
                      data: this.quLineLists[2].data
                    }
                  ]
              }
              // 把配置option选项用js放进dom节点
              myChart.setOption(option)
            }
          }).catch((err) => {
          console.log(err)
        })
      },
      }
    }
  }
</script>

<style scoped>

</style>

四、效果展示:
在这里插入图片描述

你已经成功了,撒花。
今天的分享到此结束,欢迎小伙伴们一起交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/167260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FLStudio水果21最新Daw (宿主软件)电音混音编曲制作工具

对许多音乐爱好者来说&#xff0c;从单独欣赏作品过渡到按自己的心情创作作品&#xff0c;是一种奇妙而令人高兴的体验。 音乐的编曲&#xff0c;特别是电子的编曲&#xff0c;Daw (宿主软件)是重要的要素。 编曲软件有很多。 “专业”这个词取决于你是否在行业的某个部分。 就…

MyBatis 详解 (1) -- 环境搭建、查询操作

MyBatis 详解 1 -- 环境搭建、查询操作一、MyBatis 是什么二、为什么学习 MyBatis三、MyBatis 查询3.1 前言3.2 创建数据库和表3.3 添加 MyBatis 框架支持添加 MyBatis 和 MySQL 驱动3.4 配置连接字符串 和 MyBatis3.4.1 配置连接字符串3.4.2 配置 MyBatis 中的 XML 路径3.5 添…

CSS造成阻塞的原理

目录 1.原理解析 A.webkit渲染过程 B.Gecko渲染过程 C.解析原理 接上篇文章CSS会造成阻塞吗&#xff1f; 我们来说一下CSS造成阻塞的原理 1.原理解析 那么为什么会出现上面的现象呢&#xff1f;我们从浏览器的渲染过程来解析下。 不用浏览器使用的内核不同&#xff0c…

leetcode 648. 单词替换【python3哈希集与两种字典树的方法的思考过程整理】

题目 在英语中&#xff0c;我们有一个叫做 词根(root) 的概念&#xff0c;可以词根后面添加其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如&#xff0c;词根an&#xff0c;跟随着单词 other(其他)&#xff0c;可以形成新的单词 another(另一个)。…

UI自动化测试模块与环境管理全面打通,MeterSphere开源持续测试平台v2.6.0发布

2023年1月16日&#xff0c;MeterSphere一站式开源持续测试平台正式发布v2.6.0版本。 在这一版本中&#xff0c;MeterSphere的UI自动化测试模块与环境管理全面打通&#xff0c;更好地满足了用户一个脚本同时跑多个环境的测试需求。在测试跟踪模块中&#xff0c;测试计划关联测试…

怎么系统的阅读文献

文章目录一、文献阅读1、综述类文献 review article2、研究类文章 research article3、方法学的文章第一部分 综述类文章的阅读第二部分 研究型文章的阅读a. 研究型论文结构b. 如何有选择阅读文献c. 如果整理笔记Citation和Reference的区别二、文献阅读工具1、Connected Papers…

python-while循环

文章目录一、程序的三种结构二、while循环1.1&#xff1a;死循环1.2&#xff1a;循环计数习惯案例1.3&#xff1a;循环计数2.0&#xff1a;break终止循环3.0&#xff1a;人造死循环4.0&#xff1a;continue5.0循环嵌套一、程序的三种结构 1&#xff1a;顺序 代码自上而下执行 …

四旋翼无人机学习第20节--PCB自动保存文件labview设计

0 前言 在设计PCB的过程中&#xff0c;通常一个项目的的PCB文件只有一个&#xff0c;如果保存完文件后想要回滚到自己的版本是比较难的&#xff0c;虽然allergo软件可以设置autosave功能来自动对PCB文件进行备份&#xff0c;但是备份文件只会保存最后一次的版本。 1 labview编…

JavaWeb基础(二) HTTP、Tomcat、Servlet介绍

JavaWeb基础(二) HTTP、Tomcat、Servlet介绍 1&#xff0c;Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 在我们日常的生活中&#xff0c;经常会使用浏览器去访问百度、京东、传智官网等这些网站&a…

Dubbo调用

Dubbo调用 0. 概述 Dubbo 服务调用过程比较复杂&#xff0c;包含众多步骤&#xff0c;比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。 1. 客户端发送请求时序图 InvokerInvocationHandler.invoke 1. 对于Object中的方法toString, has…

IDEA常用配置整理说明

文章目录IDEA常用配置整理说明1、 IDE配置1.1 设置相关1.1.1 忽略大小写开关1.1.2 取消单行显示tabs的操作1.1.3 项目文件编码1.1.4 滚轴修改字体大小1.1.5 设置显示行号和方法间的分隔符1.1.6 新建类头注释信息1.1.7 JavaDoc注释&#xff08;就是方法上加的注释&#xff09;1.…

蓝桥杯:整数分解

题目链接 问题描述 答案提交 本题答案&#xff1a;691677274345。 思路分析 问题描述 将 3 分解成两个正整数的和, 有两种分解方法, 分别是312 和 321 。注意顺序不同算不同的方法。 将 5 分解成三个正整数的和, 有 6 种分解方法, 它们是 113 122 131 212 221 311。…

WebSocket长连接接入支付宝消息服务,实现消息通知

大家好&#xff0c;我是小悟 在对接支付宝开放平台的一些常用功能时&#xff0c;常常需要收到支付宝的回调通知结果&#xff0c;才能处理业务逻辑。此文介绍通过WebSocket长连接接入支付宝消息服务&#xff0c;实现消息通知。 包括五部分内容&#xff1a;问题、优势、配置、代…

Spring3.*中ASM和JDK8版本冲突问题及解决方案

1. 问题描述 Spring3.* 中ASM版本较低&#xff0c;不支持对 JDK8 class文件进行操作&#xff0c;启动时报错。 Tomcat报错 org.springframework.asm.MethodVisitor.visitParameter2. 问题原因 Spring使用ASM类库操作Java class文件&#xff0c;Spring.* 依赖的ASM类库版本比…

右键万能格式转换工具

格式转换是很多小伙伴都会用到的东西&#xff0c;无论是视频、音频还是文档等格式&#xff0c;其实做这方面的软件有很多&#xff0c;比如之前一直在用的格式工厂&#xff0c;蛮好用的。后面用到了ABC工具箱&#xff0c;&#xff08;这款软件批量处理图片会很方面&#xff09;界…

故障分析 | 库表名-大小写不规范,运维两行泪

作者&#xff1a;刘聪 爱可生华东交付服务部 DBA 成员&#xff0c;专职 MySQL 故障处理及相关技术支持。座右铭&#xff1a;好好学习&#xff0c;天天向上。 本文来源&#xff1a;原创投稿 *爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系…

【博客589】K8s Topology Spread Constraints

K8s Topology Spread Constraints 场景 你可以使用 拓扑分布约束&#xff08;Topology Spread Constraints&#xff09; 来控制 Pod 在集群内故障域之间的分布&#xff0c; 例如区域&#xff08;Region&#xff09;、可用区&#xff08;Zone&#xff09;、节点和其他用户自定义…

带你从概念到服务对象,解读商业智能BI

数据在当前时代已然成为了重要的战略资源&#xff0c;但数据资产却并不是每个企业都能利用。数据本身并没有太多意义&#xff0c;规模小还好&#xff0c;一旦规模量变大&#xff0c;人们就难以理解其中的含义。所以讲数据资产价值化&#xff0c;使其转化为信息和知识成为了企业…

五个了解自己天赋优势的分析工具(四)MBTI测试

MBTI测试 MBTI全称“迈尔斯-布⾥格斯类型指标”&#xff0c;是美国作家伊莎⻉尔布⾥格斯迈尔斯和她的⺟亲凯瑟琳库克布⾥格斯在20世纪40年代编制的⼀种⼈格测试。 这⼀测试的基础来⾃著名⼼理学家荣格提出的⼼理类型理论。 荣格将⼈的性格类型分为“内向&#xff08;I&#xf…

广告业务系统 之 业务串联 —— “ PDB - 广告投放【保量保价】”

文章目录广告业务系统 之 业务串联 —— “ PDB - 广告投放【保量保价】”PDB - 广告投放[保量保价]PDB 浅述PDB 数据流图保量逻辑设计订单曝光拆分凌晨停量补量广告业务系统 之 业务串联 —— “ PDB - 广告投放【保量保价】” PDB - 广告投放[保量保价] 常规的 ADX 系统&am…