【Vue3】ECharts图表案例

官方参考:Examples - Apache ECharts

1、创建工程

npm create vite@latest

npm init vue@latest

设置如下 

2、下载依赖集运行项目

cd vue-echarts-demo
npm install
npm install echarts
npm run dev

3、编写核心代码

创建src\components\BarView.vue文件,内容如下:

<template><!-- 图表容器:设置宽度和高度 --><div ref="chartRef" style="width: 1000px; height: 400px;"></div>
</template><script setup>
// 引入 Vue 的 Composition API
import { ref, onMounted, onBeforeUnmount } from 'vue'
// 引入 echarts 库
import * as echarts from 'echarts'// 获取 DOM 元素的引用(用于初始化图表)
const chartRef = ref(null)
// 存储 ECharts 实例
let chartInstance = null// 初始化图表的方法
const initChart = () => {if (chartRef.value) {// 初始化 echarts 实例chartInstance = echarts.init(chartRef.value)// 配置项const option = {title: {text: 'Vue3柱状图示例' // 图表标题},tooltip: {}, // 默认提示框配置legend: {data: ['销量'] // 图例名称},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] // X 轴数据},yAxis: {}, // Y 轴默认配置series: [{name: '销量', // 系列名称type: 'bar', // 图表类型为柱状图data: [5, 20, 36, 10, 10, 20] // 数据值}]}// 使用配置项渲染图表chartInstance.setOption(option)}
}// 窗口大小变化时调整图表尺寸
const resizeChart = () => {chartInstance?.resize()
}// 组件挂载后执行初始化
onMounted(() => {initChart()// 监听窗口大小变化事件以支持响应式window.addEventListener('resize', resizeChart)
})// 组件卸载前清理资源,防止内存泄漏
onBeforeUnmount(() => {window.removeEventListener('resize', resizeChart)chartInstance?.dispose() // 销毁 echarts 实例
})
</script>

编写src\components\PieView.vue代码

<template><!-- 图表容器:设置宽度和高度 --><div ref="chartRef" style="width: 1000px; height: 400px;"></div>
</template><script setup>
// 引入 Vue 的 Composition API
import { ref, onMounted, onBeforeUnmount } from 'vue'
// 引入 echarts 库
import * as echarts from 'echarts'// 获取 DOM 元素的引用(用于初始化图表)
const chartRef = ref(null)
// 存储 ECharts 实例
let chartInstance = null// 初始化图表的方法
const initChart = () => {if (chartRef.value) {// 初始化 echarts 实例chartInstance = echarts.init(chartRef.value)// 配置项
var option;option = {title: {text: 'Referer of a Website',subtext: 'Fake Data',left: 'center'},tooltip: {trigger: 'item'},legend: {orient: 'vertical',left: 'left'},series: [{name: 'Access From',type: 'pie',radius: '50%',data: [{ value: 1048, name: 'Search Engine' },{ value: 735, name: 'Direct' },{ value: 580, name: 'Email' },{ value: 484, name: 'Union Ads' },{ value: 300, name: 'Video Ads' }],emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]
};// 使用配置项渲染图表chartInstance.setOption(option)}
}// 窗口大小变化时调整图表尺寸
const resizeChart = () => {chartInstance?.resize()
}// 组件挂载后执行初始化
onMounted(() => {initChart()// 监听窗口大小变化事件以支持响应式window.addEventListener('resize', resizeChart)
})// 组件卸载前清理资源,防止内存泄漏
onBeforeUnmount(() => {window.removeEventListener('resize', resizeChart)chartInstance?.dispose() // 销毁 echarts 实例
})
</script>

4、修改App代码

src\App.vue内容修改如下

<script setup>
import BarView from './components/BarView.vue';
import PieView from './components/PieView.vue';
</script><template><BarView /><PieView></PieView>
</template><style scoped>
.logo {height: 6em;padding: 1.5em;will-change: filter;transition: filter 300ms;
}
.logo:hover {filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

5、查看结果 

浏览器输入:http://localhost:5173/ 

参考资料:

Vue 3 搭配 ECharts:实现复杂数据图表展示_vue3 echarts-CSDN博客

Vue 3 搭配 ECharts:实现复杂数据图表展示_vue3 echarts-CSDN博客

极致呈现系列之:Vue3中使用Echarts图表初体验-腾讯云开发者社区-腾讯云

https://juejin.cn/post/7493433637830148106

https://www.51cto.com/article/803996.html

https://zhuanlan.zhihu.com/p/1910642270039942543

前端必学!全面解读 Tailwind CSS配置与使用Tailwind CSS,前端开发提效神器。从配置到实战,全面解读 - 掘金

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

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

相关文章

二分查找----2.搜索二维矩阵

题目链接 /** 方案一: 每行都是递增的,对每行进行二分,逐行查找;效率不高,每次搜索只能控制列无法兼顾到行,行被固定存在不必要的搜索 方案二: 从右上或左下顶点出发,以右上为例,向左迭代列减小,向下迭代行增大;效率更高避免重复搜索 */ class Solution {/**方案一: 每行都是…

2025.7.23

flen&#xff08;&#xff09;这个函数计算到的文件大小为0&#xff0c;明天解决 原因是路径错误&#xff0c;写成了CONFIG_ROOT_PATH"/music/test2.mp3,但是也没报错&#xff0c;打开文件也成功&#xff0c;所以就没有怀疑到路径方面来

大致自定义文件I/O库函数的实现详解(了解即可)

目录 一、mystdio.h 代码思路分析 二、mystdio.c 1. 辅助函数 BuyFile 2. 文件打开函数 MyFopen 3. 文件关闭函数 MyFclose 4. 数据写入函数 MyFwrite 1、memcpy(file->outbuffer file->bufferlen, str, len); 2、按位与&#xff08;&&#xff09;运算的作…

Zipformer

Zipformer首先&#xff0c;Conv-Embed 将输入的 100Hz 的声学特征下采样为 50 Hz 的特征序列&#xff1b;然后&#xff0c;由 6 个连续的 encoder stack 分别在 50Hz、25Hz、12.5Hz、6.25Hz、12.5Hz 和 25Hz 的采样率下进行时域建模。除了第一个 stack 外&#xff0c;其他的 st…

SpringMVC快速入门之请求与响应

SpringMVC快速入门之请求与响应一、请求处理&#xff1a;获取请求参数1.1 普通参数获取&#xff08;RequestParam&#xff09;1.1.1 基础用法1.1.2 可选参数与默认值1.2 路径变量&#xff08;PathVariable&#xff09;1.3 表单数据绑定到对象1.3.1 定义实体类1.3.2 绑定对象参数…

【Mysql】 Mysql zip解压版 Win11 安装备忘

1. 官网 MySQL :: MySQL Community Downloads 选择 MySQL Community Server 选择Archives 选择 8.0版本 MySQL :: Download MySQL Community Server (Archived Versions) 1. 普通版本&#xff08;推荐&#xff09; 名称&#xff1a;Windows (x86, 64-bit), ZIP Archive 文件…

Web3面试题

1.在使用 Ethers.js 对接 MetaMask 钱包时&#xff0c;如何检测用户账户切换的情况&#xff1f;请简述实现思路。 答案&#xff1a;可通过监听accountsChanged事件来检测。当用户切换账户时&#xff0c;MetaMask 会触发该事件&#xff0c;在事件回调函数中可获取新的账户地址&…

uni-app动态获取屏幕边界到安全区域距离的完整教程

目录 一、什么是安全区域&#xff1f; 二、获取安全区域距离的核心方法 三、JavaScript动态获取安全区域距离 1. 核心API 2. 完整代码示例 3. 关键点说明 四、CSS环境变量适配安全区域 1. 使用 env() 和 constant() 3. 注意事项 五、不同平台的适配策略 1. H5 端 2…

ZKmall开源商城微服务架构实战:Java 商城系统的模块化拆分与通信之道

在电商业务高速增长的今天&#xff0c;传统单体商城系统越来越力不从心 —— 代码堆成一团、改一点牵一片、想加功能得大动干戈&#xff0c;根本扛不住高并发、多场景的业务需求。微服务架构却能破这个局&#xff1a;把系统拆成一个个能独立部署的小服务&#xff0c;每个服务专…

ROS 与 Ubuntu 版本的对应关系

ROS 作为一套用于构建机器人应用的开源框架&#xff0c;其开发和运行高度依赖 Ubuntu 等 Linux 发行版&#xff0c;尤其是 Ubuntu 因其广泛的兼容性和社区支持&#xff0c;成为了 ROS 最主流的运行平台。 一、ROS 与 Ubuntu 版本的对应关系&#xff08;截至 2025 年&#xff0c…

GPT-4o mini TTS:领先的文本转语音技术

什么是 GPT-4o mini TTS&#xff1f; GPT-4o mini TTS 是 OpenAI 推出的全新一代文本转语音&#xff08;TTS&#xff09;技术&#xff0c;能够以自然、流畅的方式将普通文本转换为语音。依托先进的神经网络架构&#xff0c;GPT-4o mini TTS 在语音合成中避免了传统 TTS 的生硬…

Git下载全攻略

目标读者初学者或有经验的开发者不同操作系统用户&#xff08;Windows、macOS、Linux&#xff09;下载前的准备确认系统版本和位数&#xff08;32-bit/64-bit&#xff09;检查网络环境是否稳定确保有足够的磁盘空间Windows系统下载Git访问Git官方网站&#xff08;https://git-s…

ADAS域控软件架构-网络管理状态与唤醒机制

1. 状态介绍: Sleep Mode:总线睡眠模式,控制器不发送应用报文和网络管理报文。 Pre-Sleep Mode:准备总线睡眠模式,控制器不发送应用报文和网络管理报文。 Ready Sleep Mode:就绪睡眠模式,系统发送应用报文但是不发送网络管理报文。 Normal Operation mode:正常工作模式…

pytest简单使用和生成测试报告

目录 1. 基本使用 1--安装 2--pytest书写规则 3--为pycharm设置 以 pytest的方式运行 4--setup和teardown 5--setup_class和teardown 2. pytest生成测试报告 基本使用 安装 pytest文档地址 pytest documentation pip install pytest点击pycharm左边的控制台按钮 输入pip inst…

Spring Boot 第一天知识汇总

一、Spring Boot 是什么&#xff1f;简单说&#xff0c;Spring Boot 是简化 Spring 应用开发的框架 —— 它整合了整个 Spring 技术栈&#xff0c;提供了 “一站式” J2EE 开发解决方案。核心优点&#xff1a;快速创建独立运行的 Spring 项目&#xff0c;无需繁琐配置&#xff…

MySql主从部署

MySql主从部署 1、操作环境 硬件环境&#xff1a;香橙派5 aarch64架构 软件环境&#xff1a;Ubuntu 22.04.3 LTS 软件版本&#xff1a;mysql-8.0.42 操作方式&#xff1a;mysql_1,mysql_2容器 主节点&#xff1a;mysql_1 启动命令&#xff1a;docker run --name mysql_master \…

Redis——Redis进阶命令集详解(下)

本文详细介绍了Redis一些复杂命令的使用&#xff0c;包括Redis事务相关命令&#xff0c;如MULTI、EXEC、DISCARD 和 WATCH ,发布订阅操作命令&#xff0c;如PUBLISH 、SUBSCRIBE 、PSUBSCRIBE ,BitMap操作命令&#xff0c;如SETBIT、GETBIT、BITCOUNT、BITOP&#xff0c;HyperL…

C#使用socket报错 System.Net.Sockets.SocketException:“在其上下文中,该请求的地址无效。

bind: 在其上下文中&#xff0c;该请求的地址无效。问题定位 程序中运行socket服务端程序时&#xff0c;绑定的IP地址无效&#xff0c;即请求的IP地址在你的机子上找不到。原因有以下几种可能&#xff1a; 1&#xff09;server端绑定的IP地址不是本机的IP地址。 2&#xff09;之…

计算机底层入门 05 汇编学习环境通用寄存器内存

2.3 汇编学习环境我们通过上一章笔记&#xff0c;得知 计算机好像 只会通过位运算 进行 数字的加法。 而机器语言的魅力就是 位运算&#xff0c;解析规则。它们也都是通过 电路 来进行实现的。这就是 计算机最底层的本质了&#xff01;&#xff01;&#xff01; 汇编语言 所谓的…

Java学习---Spring及其衍生(上)

在 Java 开发领域&#xff0c;Spring 生态占据着举足轻重的地位。从最初的 Spring 框架到后来的 SpringBoot、SpringMVC 以及 SpringCloud&#xff0c;每一个组件都在不同的场景下发挥着重要作用。本文将深入探讨这几个核心组件&#xff0c;包括它们的定义、原理、作用、优缺点…