当前位置: 首页 > news >正文

uniapp vue3 使用echarts绘制图表 柱状图等

部分内容AI总结

Uniapp 使用 Vue3 和 ECharts 组件的总结

在 Uniapp 中使用 Vue3 和 ECharts 进行数据可视化是一种常见需求。以下将详细介绍如何在 Uniapp 项目中安装 ECharts 插件、在 main.js 中挂载 ECharts 以及一个简单的示例 demo


1. 下载 ECharts 插件

在 Uniapp 中,使用 ECharts 进行数据可视化需要先安装 ECharts 相关插件。

  • 步骤:
    1. 打开项目目录,使用以下命令安装 ECharts 插件:
      pnpm add echarts
      
    2. 导入自定义eharts插件

2. main.js 中挂载 ECharts

在 Vue3 项目中,通常需要在 main.js 中挂载全局的 ECharts 对象,这样可以在项目的任何地方使用它。

  • 步骤:
  1. 打开 main.js 文件,导入 ECharts 并进行挂载:
	//关键代码const echarts = require('./static/echarts.min');app.config.globalProperties.$echarts = echarts
  1. 现在,你可以在项目的任何组件中通过 this.$echarts 访问 ECharts 对象。

3. 示例 Demo:使用 ECharts 绘制图表

在 Vue3 组件中,结合 Uniapp 和 ECharts,展示一个简单的图表。

  • 步骤:
    1. 创建一个新的组件 EChartDemo.vue,或者直接在 App.vue 中使用。
    2. 使用 onMounted 生命周期函数初始化图表。
<template><view><view class="title">ehcharts示例</view><view><LEchart class="echart" ref="chart" @finished="init"></LEchart></view><view><LEchart class="echart-circle" ref="chartCircle" @finished="initCircle"></LEchart></view></view>
</template><script setup>import {getCurrentInstance} from 'vue'import LEchart from '@/components/l-echart/l-echart.vue'const instance = getCurrentInstance()const echarts = instance.appContext.config.globalProperties.$echarts;console.log("echarts", echarts)import {onMounted,reactive,ref} from "vue"let chart = ref();const state = reactive({option: {},})state.option = {legend: {show: true,data: []},tooltip: {trigger: 'axis',axisPointer: {type: 'cross'}},grid: {left: '3%',right: '8%',top: '15%',bottom: '5%',containLabel: true},xAxis: {type: 'category',data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 4, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],axisLabel: {// inside: true,// color: '#fff'},axisTick: {show: false},axisLine: {show: true,lineStyle: {color: '#83bff6'}},z: 10},yAxis: {type: 'value',axisLine: {show: true,lineStyle: {color: '#83bff6'}},axisTick: {show: false},// axisLabel: {//   color: '#999'// },splitLine: {show: true,lineStyle: {type: 'dashed',color: '#83bff6'}}},series: [{data: [100, 110, 113, 126, 143, 158, 165, 167, 152, 102, , ],type: "bar",itemStyle: {color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#83bff6'},{offset: 0.5,color: '#188df0'},{offset: 1,color: '#188df0'}])},emphasis: {itemStyle: {color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#2378f7'},{offset: 0.7,color: '#2378f7'},{offset: 1,color: '#83bff6'}])}},areaStyle: {show: true,color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#188df0'},{offset: 1,color: '#fff'}])},}],color: ['#83bff6']}let chartCircle = ref();const stateCircle = reactive({option: {series: [{type: 'pie',radius: ['50%', '70%'],avoidLabelOverlap: false,label: {show: false,position: 'center'},emphasis: {label: {show: true,fontSize: '40',fontWeight: 'bold'}},labelLine: {show: false},data: [{value: 70,name: '70%'},{value: 30,name: '30%'}]}]}});onMounted(() => {chart.value.init(echarts, chart => {chart.setOption(state.option);});chartCircle.value.init(echarts, chart => {chart.setOption(stateCircle.option);});});// 渲染完成const init = () => {console.log("渲染完成");}const initCircle = () => {console.log("渲染完成circle");}
</script><style scopedlang='scss' scoped>.echart {width: 100%;height: 300px;}.title {text-align: center;}.echart-circle {width: 100%;height: 200px;}
</style>
  • 关键点解析:
    1. 图表容器:使用 ref 来创建对 DOM 元素的引用,chartContainer 是图表绘制的目标容器。
    2. onMounted 生命周期:在组件挂载时初始化 ECharts 实例并调用 setOption 方法配置图表。
    3. ECharts 配置项option 定义了图表的标题、坐标轴和数据。

4. 总结

  • 安装插件:使用 npm 安装 echarts 依赖。
  • 全局挂载:在 main.js 中将 ECharts 挂载到 Vue 的全局属性,以便在各个组件中使用。
  • 组件示例:在 Vue3 组件中,结合 onMounted 生命周期,使用 ECharts 绘制可视化图表。

通过这个步骤,你可以在 Uniapp 中轻松地集成 ECharts,结合 Vue3 的响应式特性,实现强大的数据可视化功能。

相关文章:

  • 缓存穿透 问题(缓存空对象)
  • Java | Leetcode Java题解之第436题寻找右区间
  • Python 如何使用 unittest 模块编写单元测试
  • Vue75 编程式路由导航
  • Azure Data Box 80 TB 现已在中国区正式发布
  • Vue使用axios二次封装、解决跨域问题
  • LabVIEW闪退
  • Java项目实战II基于Java+Spring Boot+MySQL的汽车销售网站(文档+源码+数据库)
  • 2.1 HuggingFists系统架构(一)
  • 快讯:腾讯轻量服务器四周年,最低一折续费,还有免费升配
  • [Redis][主从复制][中]详细讲解
  • 在什么时候需要用到常引用const---情景
  • Java中的JDK8及后续的重要新特性
  • 【NumPy】专题学习
  • Qt优秀开源项目之二十三:QSimpleUpdater
  • 「面试题」如何实现一个圣杯布局?
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 2017-08-04 前端日报
  • Golang-长连接-状态推送
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Median of Two Sorted Arrays
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Web标准制定过程
  • 大快搜索数据爬虫技术实例安装教学篇
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 跨域
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​ubuntu下安装kvm虚拟机
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #include
  • ()、[]、{}、(())、[[]]命令替换
  • (003)SlickEdit Unity的补全
  • (1)(1.11) SiK Radio v2(一)
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (ros//EnvironmentVariables)ros环境变量
  • (ZT)薛涌:谈贫说富
  • (第一天)包装对象、作用域、创建对象
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (转)详解PHP处理密码的几种方式
  • .Net - 类的介绍
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @EnableWebMvc介绍和使用详细demo
  • @KafkaListener注解详解(一)| 常用参数详解
  • []T 还是 []*T, 这是一个问题
  • [1181]linux两台服务器之间传输文件和文件夹
  • [2023-年度总结]凡是过往,皆为序章
  • [c#基础]值类型和引用类型的Equals,==的区别
  • [ComfyUI进阶教程] animatediff视频提示词书写要点
  • [CR]厚云填补_多云条件下土地覆盖分割的多模态多任务学习