news 2026/9/3 12:49:10

vue-vben-admin 仪表盘实战:4 个任务搞定 ECharts 数据可视化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vue-vben-admin 仪表盘实战:4 个任务搞定 ECharts 数据可视化

vue-vben-admin 仪表盘实战:4 个任务搞定 ECharts 数据可视化

【免费下载链接】vue-vben-adminA modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. It's fast!项目地址: https://gitcode.com/GitHub_Trending/vu/vue-vben-admin

先看图:在 vue-vben-admin 里登录后,分析页直接呈现一个完整的数据面板——顶部四张数字卡,中间选项卡可在「流量趋势」与「月访问量」之间切换,底部三列并排放着环形图与占比图 📊。整个页面就是 一个 Vue 文件 拼出来的,背后只依赖一套仓库自带的 ECharts 插件。

这篇文章按任务拆解它:怎么接入单张图表、怎么拼出整块仪表盘、图表的生命周期如何被自动托管。全部基于现有代码,不需要额外安装东西。

任务 1:5 分钟接入第一张图表

最小步骤只有三步:

  1. @vben/plugins/echarts引入EchartsUI(一个图表容器)和useEcharts(一个组合式函数,负责初始化、尺寸监听、主题切换与销毁这些脏活);
  2. 用一个ref指向容器,把ref交给useEcharts
  3. 在挂载时调用renderEcharts,把标准 ECharts 配置传进去。
<script lang="ts" setup> import type { EchartsUIType } from '@vben/plugins/echarts'; import { EchartsUI, useEcharts } from '@vben/plugins/echarts'; import { onMounted, ref } from 'vue'; const chartRef = ref<EchartsUIType>(); const { renderEcharts } = useEcharts(chartRef); onMounted(() => { renderEcharts({ series: [ { type: 'pie', radius: '80%', roseType: 'radius', data: [ { name: '外包', value: 500 }, { name: '定制', value: 310 }, { name: '技术支持', value: 274 }, { name: '远程', value: 400 }, ].toSorted((a, b) => a.value - b.value), color: ['#5ab1ef', '#b6a2de', '#67e0e3', '#2ec7c9'], }, ], tooltip: { trigger: 'item' }, }); }); </script> <template> <EchartsUI ref="chartRef" /> </template>

完成标准:页面上出现一张带入场动画的环形玫瑰图。改动datacolor就能得到新图表。这张图在仓库里的完整实现见 analytics-visits-sales.vue。

任务 2:把单图拼成完整仪表盘页面

单图只是起点,真正的仪表盘还需要数字卡、选项卡这些骨架。它们都来自@vben/common-ui,主文件 analytics/index.vue 把整页拼起来:

  • 顶部AnalysisOverview展示四组指标,每项包含图标、标题、当前值与累计值;
  • 中间AnalysisChartsTabschartTabs数组定义标签,每个标签对应一个 slot,slot 里放各自的图表组件(如analytics-trends.vueanalytics-visits.vue);
  • 底部三列用响应式网格并排,每张图各自包进一张AnalysisChartCard
<AnalysisChartsTabs :tabs="chartTabs" class="mt-5"> <template #trends> <AnalyticsTrends /> </template> <template #visits> <AnalyticsVisits /> </template> </AnalysisChartsTabs>

完成标准:打开页面能切换两个标签,底部三张图同时可见、互不挤占。

任务 3:让图表数据实时刷新

图表不是画一次就结束:数据会刷新、窗口会缩放、主题会切换。后两件事useEcharts已经替你做了——窗口尺寸变化时带 300ms 动画防抖重绘,暗色模式切换时自动重建实例并按缓存配置重新渲染,业务代码不用写任何事件监听。🔁

真正要写代码的只有数据更新。useEcharts返回的updateData支持合并模式,默认保留入场动画,配合定时器就是最常见的轮询场景:

const { updateData } = useEcharts(chartRef); setInterval(() => { fetchVisits().then((data) => { // notMerge 默认 false:合并更新,动画与既有配置都保留 updateData({ series: [{ data }] }); }); }, 60_000);

完成标准:定时轮询后曲线平滑变化;切到暗色模式,图表随主题无缝切换。

任务 4:性能与扩展

性能方面有两处值得注意:

  • echarts.ts 只注册了仪表盘用到的 4 种图表(折线、柱状、饼、雷达)和必要组件,没引入整个 echarts 包;
  • 路由懒加载让图表视图在被访问时才拉取,首屏不受图表库体积影响。

想新增图表类型时,改动也只有两处:在echarts.tsecharts.use([...])列表里追加图表,再到 types.ts 的ComposeOption中补充对应类型,useEcharts即可直接使用新图表。

图表、选项卡、数字卡各司其职,剩下的交给插件。打开 playground/src/views/dashboard/,照着现有页面就能复刻出一套属于你自己业务的仪表盘。

【免费下载链接】vue-vben-adminA modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. It's fast!项目地址: https://gitcode.com/GitHub_Trending/vu/vue-vben-admin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 0:01:56

软件测试中的网络问题

1.背景 在测试过程中&#xff0c;出现的问题&#xff0c;除了代码问题&#xff0c;还有很多的网络问题&#xff0c;所以需要了解网络知识&#xff0c;这样能发现网络问题&#xff0c;尽快解决就能提高效率。 2.计算机网络体系结构 OSI七层模型&#xff1a;物理层&#xff0c…

作者头像 李华
网站建设 2026/9/4 0:01:22

MMO手游联赛劣势局怎么翻?运营转点加数据化复盘全解析

还记得那场让很多人直呼“看不懂”的争锋赛8进4吗&#xff1f;对阵双方是“屁”队和沁雨队&#xff0c;看面板&#xff0c;主战平均落后2.1万功力&#xff0c;正面大团一碰就碎&#xff1b;看结果&#xff0c;赢下来的却是落后的一方。更耐人寻味的是&#xff0c;比赛打到最后阶…

作者头像 李华
网站建设 2026/9/2 12:26:02

华为交换机常用命令

华为官方eNSP-自己练习用 分享文件&#xff1a;eNSP 链接&#xff1a;https://pan.xunlei.com/s/VP05-Gseyw-sUA6WXfmEhcafA1?pwdipt3●划分Vlan&#xff1a; [Huawei]vlan 10 [Huawei-vlan10]quit [Huawei]interface vlan 10 ●给端口划分组&#xff1a; [Huawei]port-group …

作者头像 李华
网站建设 2026/9/3 21:39:07

QT集成Halcon显示3D对象实战:嵌入窗口、交互与性能优化

简介&#xff1a;面向需要把 Halcon 的三维对象嵌入到 Qt 界面中的开发者&#xff0c;此资源提供了一个可直接运行的工程模板&#xff0c;完整演示了基于 OpenGL 的显示方案&#xff0c;有效解决点云、网格模型无法在普通窗口控件中展示的问题。压缩包内共有七个文件&#xff0…

作者头像 李华
网站建设 2026/9/2 12:19:50

Ryujinx 模拟器:把整台 Switch 装进电脑,8GB 内存起步就能跑

Ryujinx 模拟器&#xff1a;把整台 Switch 装进电脑&#xff0c;8GB 内存起步就能跑 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx 是一个开源的 Nintendo Switch 模拟器&…

作者头像 李华
网站建设 2026/9/3 17:22:23

AirLLM:70B大模型单卡4GB显存推理,4bit量化最高提速3倍

AirLLM&#xff1a;70B大模型单卡4GB显存推理&#xff0c;4bit量化最高提速3倍 【免费下载链接】airllm AirLLM 70B inference with single 4GB GPU 项目地址: https://gitcode.com/GitHub_Trending/ai/airllm AirLLM解决"大模型装不进显存"的OOM问题&#xf…

作者头像 李华