vue实战_使用echarts

Vue2结合ECharts3的前端数据可视化实战项目 虽然Vue提供了强大的内置指令集,但我们还是可以通过开发自定义指令来扩展Vue的功能。一个自定义指令的生命周期钩子包括bindinsertedupdate和等。下面是一个简单的自定义指令例子,该指令用于聚焦输入框。// 当指令第一次绑定到元素时,调用该钩子// 找到聚焦的时机el.focus();});然后我们可以在模板中使用它:自定义指令给予了开发者强大的能力去封装和重用代码,但在实际应用中需要谨慎使用。过多的自定义指令可能会导致代码难以管理和维护。 阅读详情

在 3.1.1 版本之前 ECharts 在 npm 上的 package 是非官方维护的,从 3.1.1 开始由官方 EFE 维护 npm 上 ECharts 和 zrender 的 package。

你可以使用如下命令通过 npm 安装 ECharts

npm install echarts --save

全局引入和按需引入
main.js
// 引入echarts

import echarts from 'echarts'
Vue.prototype.$echarts = echarts 
<template>
  <div>
    <div
     id='barchart'
     :style="{width:'600px',height:'300px'}">
    </div>
  </div>
</template>

<script>
export default {
  name: 'Bar',
  mounted () {
    this.drawBar()
  },
  methods: {
    drawBar () {
      let myCharts = this.$echarts.init(document.getElementById('barchart'))
      myCharts.setOption({
        backgroundColor: '#21202D',
        title: {
          text: '过去七日交易额',
          x: 'center',
          textStyle: {
            color: '#fff'
          }
        },
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          data: ['交易额', '交易量'],
          left: 'center',
          bottom: '0',
          textStyle: {
            color: '#fff'
          }
        },
        xAxis: [
          {
            type: 'category',
            position: 'bottom',
            data: [
              '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'
            ],
            axisTick: {
              lineStyle: {
                color: '#fff'
              }
            },
            axisLabel: {
              textStyle: {
                color: '#fff'
              },
              rotate: 30
            }
          }
        ],
        yAxis: [
          {
            type: 'value',
            axisLine: {
              lineStyle: {
                color: '#fff'
              }
            }
          }
        ],
        series: [
          {
            name: '交易额',
            type: 'bar',
            data: [2000, 2300, 2400, 2500, 3100, 2100, 2800]
          },
          {
            name: '交易量',
            type: 'line',
            symbol: 'rect',
            symbolSize: 10,
            lineStyle: {
              normal: {
                width: 4
              }
            },
            data: [2023, 3044, 2044, 2250, 1450, 3440, 2270]
          }
        ]
      })
    }
  }
}
</script>

还有直接在页面中引用,不是所有页面都引入,官网:

let echarts = require('echarts')
export default {
  name: 'Bar',
  mounted () {
    this.drawBar()
  },
  methods: {
    drawBar () {
      let myCharts = echarts.init(document.getElementById('barchart'))

按需引入:

默认使用 require('echarts') 得到的是已经加载了所有图表和组件的 ECharts 包,因此体积会比较大,如果在项目中对体积要求比较苛刻,也可以只按需引入需要的模块。
// 引入基本模板
let echarts = require('echarts/lib/echarts')
// 引入柱状图组件
require('echarts/lib/chart/bar')
// 引入折线图组件
require('echarts/lib/chart/line')
// 引入提示框和title组件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')

按需引入app.js从3MB到2.1MB

关于vue封装echarts组件
我们封装一个echarts的图表,注意不要使用document.getElementByid来操作DOM元素,否则多次引用会无效,使用ref来操作DOM元素

<template>
  <div>
    <div
     ref='barchart'
     :style="{width:'600px',height:'300px'}">
    </div>
  </div>
</template>
<script>
// 引入基本模板
let echarts = require('echarts/lib/echarts')
// 引入柱状图组件
require('echarts/lib/chart/bar')
// 引入折线图组件
require('echarts/lib/chart/line')
// 引入提示框和title组件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')
export default {
  name: 'Bar',
  props: {
    texttitle: String,
    textlink: String,
    legenddata: Array,
    axisdata: Array,
    seriesdata: Array
  },
  data () {
    return {
      title: this.texttitle,
      link: this.textlink,
      legend_data: this.legenddata,
      axis_data: this.axisdata,
      series_data: this.seriesdata
    }
  },
  mounted () {
    this.drawBar()
  },
  methods: {
    drawBar () {
      let myCharts = echarts.init(this.$refs.barchart)
      myCharts.setOption({
        backgroundColor: '#21202D',
        title: {
          text: this.title,
          x: 'center',
          link: this.link,
          textStyle: {
            color: '#fff'
          }
        },
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          data: this.legend_data,
          left: 'center',
          bottom: '0',
          textStyle: {
            color: '#fff'
          }
        },
        xAxis: [
          {
            type: 'category',
            position: 'bottom',
            data: this.axis_data,
            axisTick: {
              lineStyle: {
                color: '#fff'
              }
            },
            axisLabel: {
              textStyle: {
                color: '#fff'
              },
              rotate: 30
            }
          }
        ],
        yAxis: [
          {
            type: 'value',
            axisLine: {
              lineStyle: {
                color: '#fff'
              }
            }
          }
        ],
        series: this.series_data
      })
    }
  }
}
</script>

<style lang='less' scoped>
</style>

封装的图表组件是根据外部传的值来生成相应的图表,所以需要接收外部传来的参数,注意我们最好不要直接使用传进来的值,为了避免单项数据流的问题,我们在子组件中接收重新定义一下,注意命名不要和props接收的命名相同
封装好了我们就可以在父组件中使用了,引入注册标签使用,然后将需要生成图表的值传到该组件中。

<template>
  <div>
      <bar
       :texttitle='texttitle'
       :textlink='textlink'
       :legenddata='legenddata'
       :axisdata='axisdata'
       :seriesdata='seriesdata'
      ></bar>
      <bar
       :texttitle='texttitle'
       :textlink='textlink'
       :legenddata='legenddata'
       :axisdata='axisdata'
       :seriesdata='seriesdata'
      ></bar>
  </div>
</template>
  data () {
    return {
      texttitle: '过去七日交易额',
      textlink: 'https://www.baidu.com',
      legenddata: ['交易额', '交易量'],
      axisdata: [
        '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'
      ],
      seriesdata: [
        {
          name: '交易额',
          type: 'bar',
          data: [2000, 2300, 2400, 2500, 3100, 2100, 2800]
        },
        {
          name: '交易量',
          type: 'line',
          symbol: 'rect',
          symbolSize: 10,
          lineStyle: {
            normal: {
              width: 4
            }
          },
          data: [2023, 3044, 2044, 2250, 1450, 3440, 2270]
        }
      ]
    }
  }

效果:

这里写图片描述
如果使用传统的getElementById 来获取DOmain元素操作元素,就不会出现两个了,只能生成一个。

基于ECharts与Vue.js的数据可视化项目实战 ECharts(Enterprise Charts)是由百度开源的一款功能强大、交互丰富的JavaScript图表库,广泛应用于各类数据可视化场景。它支持柱状图、折线图、饼图、散点图、地图、雷达图、热力图等数十种图表类型,并通过模块化设计实现按需加载,兼顾性能与灵活性。ECharts采用声明式配置方式,开发者只需定义option对象即可驱动图表渲染,极大提升了开发效率。// 示例:一个简单的ECharts配置title: { text: '销售趋势图' }, 阅读详情

相关推荐

在Vue中使用Echarts实例图的方法实例

主要给大家介绍了关于如何在Vue中使用Echarts实例图的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Vue3整合Apache ECharts实战笔记

Vue3整合Apache ECharts实战笔记

IQ_Kuo的博客 1631

Hadoop实战:用MapReduce分析YouTube视频数据集(附完整代码)

本文提供了一个完整的Hadoop MapReduce实战教程,指导读者使用MapReduce框架分析YouTube视频数据集,统计不同视频类别的数量分布。教程涵盖从数据获取、预处理、HDFS操作到Java代码编写、作业提交及结果可视化的全流程,并附有完整代码,帮助开发者深入理解分布式计算思想。

lilh34434的博客 198

vue3+Echarts-数据可视化项目实践

本次案例是使用vue3和Echarts图表进行实现的,整个书写代码过程相对来说还算比较简单,易于理解,项目开始之初肯定离不开框架的搭建,vue框架的搭建这里主要使用的是vue-cli来构建项目,不过小伙伴们也可以使用vite来构建,这个可能相对来说需要后期自己去书写里面的比如像路由这些。今天来讲解一下最近工作中学习到的一些新的知识点,也是自己第一次接触到的新内容,和小伙伴们一起分享学习下。(4)最后就是后端数据,需要另外新建文件夹,在里面书写各个图表的数据,这里将具体的数据文档放置。

qq_53541336的博客 2901

GD32模拟IIC读写DVC1124

GD32模拟IIC读写集澈AFE芯片DVC1124

ponyma_的博客 1226

Origin 2025b中文版安装全指南:避开乱码、水印与崩溃陷阱

Origin作为科研绘图领域的事实标准,其2025b版本首次官方支持简体中文UI,但安装远非‘下一步’即可完成。核心在于理解软件本体、语言包、许可证服务与系统区域设置四者间的耦合关系——尤其Windows非Unicode程序语言必须设为‘中文(简体,中国)’,否则必然触发坐标轴乱码、PDF文字方块等典型故障;而AI辅助拟合、内置Python 3.11等新特性,又依赖正确的字体链(如SimSun)与注册表强制加载(UILanguage=zh-CN)才能稳定启用。该版本广泛应用于材料科学、电化学、XRD/SEM

weixin_42548874的博客 1406

vue3从0到1创建echarts案例示范,保姆级教程【图文+代码】

 本篇文章演示如何快速且简单地在vue3中实现echarts图表。 一些图表的样式,图表的参数等设置,需要大家自行进行查询学习。

科技改变世界,技术驱动未来。 2万+

从ViT到CLIP:OpenAI如何用4亿张图‘教会’AI看懂世界?一次讲透对比学习与Prompt工程

本文深入解析OpenAI的CLIP模型如何通过4亿图文对的对比学习实现跨模态理解,详细探讨了对比学习、数据构建、模型架构及Prompt工程等核心技术。CLIP利用Transformer架构和精心设计的Prompt模板,在Zero-Shot分类、图像检索等场景展现出强大能力,为多模态AI应用开辟新方向。

weixin_27027459的博客 371

19年全新elementUI项目实战教程vue整合Echarts后台权限视频教程

  

TM1650数码管驱动芯片

简介 TM1650是一款国产4位共阴数码管驱动芯片,它还带有矩阵按键扫码功能。它的基本参数如下: 工作电压:3~5V 数码管驱动模式:8段x4位共阴数码管 矩阵按键驱动模式:7x4矩阵按键,不支持组合键 通信接口:类IIC,使用了IIC相同的时序,但没有完全遵守IIC的协议,不带从机地址 引脚定义 SCL:串行通信时钟线 SDA:串行通信数据线 做数码管驱动使用时 DIGx:数码管的位选引脚,灌电流驱动,最大可吸收150mA电流 A~DP:数码管的段驱动引脚,拉电流驱动,最大可输出25m

luliplus的博客 4万+

RobotStudio码垛机器人创建过程

首先导入一个IRB2600机器人,移动夹具的本地坐标原点,使原点位置为顶面中心(与法兰盘连接的部位)。对齐夹爪Smart组件的本地坐标和机器人末端法兰盘的坐标...

个人博客 1万+

视频教程-ECHARTS基础到vue实战-Vue

ECHARTS基础到vue实战 前端开发工程师,对vue html5,eas...

weixin_32347519的博客 445

IEC61850规约客户端软件开发实战(第二章)

本文介绍了基于IEC61850规约的客户端软件开发过程,重点阐述功能界面设计和服务端连接功能的实现。界面采用Qt框架设计,包含功能按钮区、数据模型展示区(使用QTreeWidget)和状态显示区。连接功能通过libiec61850开源库实现,详细说明了连接流程、句柄创建及状态管理的代码实现。测试结果表明系统能正确识别连接状态,并通过界面直观显示。文章为IEC61850规约软件开发提供了实用参考,下期将分享规约模型数据加载的实现过程。

半青年的博客 2855

Vue实战篇二十五:使用ECharts绘制疫情折线图

Vue实战,带你学会使用ECharts绘制疫情折线图。

我的博客 3010

优秀的 Verilog/FPGA开源项目介绍(六)- MIPI

MIPI的协议我就不详细介绍了(可以查看<下面的二维码>),这里和开源方案比较接近的即使FPGA实现MIPI物理层(DPHY)中电气属性相关的几种方案:MIPI DPHY RX...

OpenFPGA的博客 4457

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Vue生态拓展与实战案例03,ECharts 在 Vue 项目中的应用:从集成到可视化实战

本文详细介绍了ECharts在Vue项目中的集成与应用。首先分析了ECharts与Vue框架的契合优势,包括轻量灵活、数据驱动等特点。接着从基础集成入手,讲解了全局引入和按需引入两种方式。重点演示了在Vue组件中实现柱状图和多图表联动的实战开发,并提供了常见问题解决方案和优化技巧。文章强调ECharts与Vue的结合能充分发挥响应式数据和可视化优势,帮助开发者高效实现专业级数据可视化功能。

码路同行 876

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Vue3 + ECharts 数据可视化实战指南

开启渐变动画(animation: true)使用大数据模式(large: true)的useResizeObserver。百度开源的成熟可视化库。支持30+种图表类型。完善的文档和社区支持。检查容器高度是否为0。

qq_39842184的博客 1228

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Vue:echarts画图实战,异步获取数据在Vue上使用echarts进行画图

Vue:echarts画图实战,异步获取数据在Vue上使用echarts进行画图 一、效果图 二、资源 主题编辑器 ECharts 教程 实现代码------想要进行实战的同学可以研究以下代码,下面的代码就是生成以上图片的代码,仔细研究10分钟就可以学会了,Vue上使用echarts还是很简单的 <template> <div> <div> <p> <span> 技术

XRT_knives的博客 2308

vue-echarts实战开发

我们今天讲解vue-echarts的开发使用方法,我们先看效果; 我们直接贴代码,对应效果会有注释。 <template> <div class="echarts-box"> <div id="chart_example" style=' width: 420px;height: 300px;'></div> </div> </template> <script> import echarts

前端_李嘉豪 816

基于 Vue 和 ECharts 实现定时更新与倒计时功能的实战教程

时间选择器:允许用户选择一个时间范围。确认和刷新按钮:用户点击确认按钮时,触发数据请求,刷新显示的数据。倒计时显示:在页面上展示倒计时,倒计时结束后自动刷新数据。四个监控大屏:每个大屏显示一块 ECharts 图表,实时展示数据。接下来,我们将一步步分析如何实现这些功能。我们在data中定义了时间选择范围、倒计时初始值、以及图表数据。特别需要注意的是,倒计时功能的实现,我们将使用一个定时器来控制倒计时。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 1万+

视频教程-19年全新elementUI项目实战教程vue整合Echarts后台权限视频教程-Vue

19年全新elementUI项目实战教程vue整合Echarts后台权限视频教程 ...

weixin_33646570的博客 1055

vue echarts 饼图 代码全_Vue实战090:Vue使用ECharts图表详解

什么是EChartsECharts是由百度基于html5 Canvas打造的数据可视化图表,使用 JavaScript 实现的开源可视化库。提供了直观,生动,可交互,可高度个性化定制的数据可视化图表,赋予了用户对数据进行挖掘、整合的能力。ECharts支持折线图、柱状图、散点图、K线图、饼图、雷达图、和弦图、力导向布局图、地图、仪表盘、漏斗图、事件河流图等12类图表,同时提供标题、详情、气泡、图例...

weixin_39839726的博客 310

从零到一:Vue2与ECharts打造动态中国地图的实战指南

本文详细介绍了如何在Vue2项目中集成ECharts库,实现动态中国地图的数据可视化。从环境配置、基础地图渲染到数据绑定与热力图展示,再到高级交互功能如地图下钻和自定义标记点,提供了完整的实战指南。文章还涵盖了性能优化技巧和常见问题解决方案,帮助开发者快速掌握Vue2与ECharts的数据交互能力。

weixin_29015899的博客 282

从Options到Composition:Vue-ECharts 6与Vue 3迁移实战指南

你是否正面临Vue 2项目升级到Vue 3的挑战?还在为如何将Options API风格的图表代码改造成Composition API而头疼?本文将以vue-echarts 6为核心,通过三个实战场景,带你掌握从Options API到Composition API的平滑迁移方案,解决图表性能优化、代码复用和响应式处理三大痛点。 ## 迁移前的准备工作 ### 环境配置检查 迁移前需确保项目

gitblog_00216的博客 959

vue实战+echarts使用小结

南京三月之旅工作小结鑫探索 http://info.andlinks.com (线上地址,可看)vue全家桶2.0带webpack全部可配置项的pc端项目接手项目一期是做理财产品洞察模块(包括发行态势和产品列表) 鑫探索 http://info.andlinks.com (线上地址,可看) vue全家桶2.0带webpack全部可配置项的pc端项目 接手项目一期是做理财产品洞察模块(包括发行态势和...

19年8月小结 2015
上一篇: Webpack_(第三章)_实现对React框架代码的打包
下一篇: 关于数组、对象的深浅拷贝
_dalianmiao
博客等级 码龄8年 131粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值