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

在 vue-vben-admin(v5 版本)中,使用 ECharts 图表(豆包版)

vue-vben-admin(v5版本)中,使用 ECharts 图表的方式已通过框架封装的 @vben/plugins/echarts 模块简化,结合官方示例,具体使用步骤如下:

1. 核心组件与工具导入

框架提供了封装后的 EchartsUI 组件(图表容器)和 useEcharts 钩子(图表逻辑处理),直接从插件中导入即可:

// 导入组件和钩子
import { EchartsUI, useEcharts } from '@vben/plugins/echarts';
// 导入图表实例类型(可选,用于TypeScript类型提示)
import type { EchartsUIType } from '@vben/plugins/echarts';

2. 基础使用流程

以在页面中渲染一个折线图/柱状图/饼图为例,标准流程如下:

步骤1:创建图表容器引用

通过 ref 创建一个指向 EchartsUI 组件的引用,用于绑定图表实例:

import { ref, onMounted } from 'vue';// 创建图表容器引用
const chartRef = ref<EchartsUIType>();
步骤2:初始化图表逻辑

使用 useEcharts 钩子关联容器引用,获取渲染方法 renderEcharts

// 初始化图表逻辑,传入容器引用
const { renderEcharts } = useEcharts(chartRef);
步骤3:定义图表配置并渲染

onMounted 生命周期中,通过 renderEcharts 方法传入 ECharts 配置项(option),完成图表渲染:

onMounted(() => {// 调用渲染方法,传入ECharts配置renderEcharts({// 图表配置项(与ECharts官方option一致)grid: {left: '1%',right: '1%',bottom: '3%',containLabel: true,},xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],},yAxis: {type: 'value',},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: 'bar', // 图表类型(折线图用'line',饼图用'pie'等)},],});
});
步骤4:在模板中添加图表容器

使用 EchartsUI 组件作为图表容器,并绑定之前创建的 ref

<template><!-- 图表容器,可通过height/width属性设置尺寸 --><EchartsUI ref="chartRef" height="400px" />
</template>

3. 关键特性说明

  • 自动适配主题:框架会根据全局主题(明亮/暗黑模式)自动切换 ECharts 主题,无需手动处理。
  • 响应式 resizeuseEcharts 内置了窗口大小监听,图表会自动适应容器尺寸变化。
  • 配置项兼容renderEcharts 接收的配置项完全兼容 ECharts 官方 option 格式,支持所有图表类型(折线、柱状、饼图、雷达图等)。
  • 实例获取:通过 getChartInstance 方法可获取原始 ECharts 实例,用于高级操作(如手动触发刷新、绑定事件等):
    const { getChartInstance } = useEcharts(chartRef);
    // 在需要时获取实例
    const instance = getChartInstance();
    instance?.on('click', (params) => {console.log('图表点击事件', params);
    });
    

4. 完整示例代码

<script lang="ts" setup>
import { ref, onMounted } from 'vue';
import { EchartsUI, useEcharts } from '@vben/plugins/echarts';
import type { EchartsUIType } from '@vben/plugins/echarts';// 图表容器引用
const chartRef = ref<EchartsUIType>();
// 初始化图表逻辑
const { renderEcharts } = useEcharts(chartRef);// 页面挂载后渲染图表
onMounted(() => {renderEcharts({title: {text: '示例图表',left: 'center',},tooltip: {trigger: 'axis',},xAxis: {type: 'category',data: ['1月', '2月', '3月', '4月', '5月', '6月'],},yAxis: {type: 'value',},series: [{name: '数据',data: [150, 230, 224, 218, 135, 147],type: 'line', // 折线图smooth: true,},],});
});
</script><template><!-- 图表容器,设置高度 --><EchartsUI ref="chartRef" height="400px" />
</template>

总结

vue-vben-admin 对 ECharts 的封装简化了初始化、主题适配和响应式处理流程,核心步骤为:

  1. 导入 EchartsUIuseEcharts
  2. 创建容器引用并关联图表逻辑;
  3. 定义 ECharts 配置项并通过 renderEcharts 渲染;
  4. 在模板中使用 EchartsUI 作为容器。

使用时直接参考 ECharts 官方文档的配置项即可,无需关心框架底层适配细节。


文章转载自:

http://PXMWSjhz.yqjjn.cn
http://IZ0j9FYS.yqjjn.cn
http://xYfbmLoo.yqjjn.cn
http://s73hH2vJ.yqjjn.cn
http://65hjsyW6.yqjjn.cn
http://PPvhs7k5.yqjjn.cn
http://kil3Z6P3.yqjjn.cn
http://Z4RHSwK9.yqjjn.cn
http://47fDNk0T.yqjjn.cn
http://ySSHyK8x.yqjjn.cn
http://BHBpLd6z.yqjjn.cn
http://TAiDUx0u.yqjjn.cn
http://T9uDnmvV.yqjjn.cn
http://x4eAUdmN.yqjjn.cn
http://pAH0nvBq.yqjjn.cn
http://upyHhSwz.yqjjn.cn
http://pBJCZHWB.yqjjn.cn
http://jNsIgqeX.yqjjn.cn
http://orLs1oDn.yqjjn.cn
http://CgwtiZe9.yqjjn.cn
http://DxdEkvY5.yqjjn.cn
http://N2Ed1BYP.yqjjn.cn
http://v9qtL9AR.yqjjn.cn
http://6Q3uJiXC.yqjjn.cn
http://Fv8cDGXO.yqjjn.cn
http://nYIiCP4M.yqjjn.cn
http://uVXxwEt0.yqjjn.cn
http://hZvLLhK0.yqjjn.cn
http://FhOFi3qj.yqjjn.cn
http://E0Zs0gmN.yqjjn.cn
http://www.dtcms.com/a/368643.html

相关文章:

  • 数码视讯TR100-OTT-G1_国科GK6323_安卓9_广东联通原机修改-TTL烧录包-可救砖
  • RWA 技术:让实体消费积分变身可信数字资产
  • 蚂蚁 S21 XP+ HYD 500T矿机评测:SHA-256算法与高效冷却技术的结合
  • DAY1:错题日记
  • 直播美颜SDK的技术架构剖析:人脸美型功能的实现原理与优化策略
  • Kafka 消息队列:揭秘海量数据流动的技术心脏
  • 2025 年高教社杯全国大学生数学建模竞赛C 题 NIPT 的时点选择与胎儿的异常判定详解(一)
  • 当低代码遇上AI,有趣,实在有趣
  • 从“找新家”到“走向全球”,布尔云携手涂鸦智能开启机器人新冒险
  • 低代码核心原理总结
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十五)窗口图标 / 任务栏图标
  • 安科瑞基站智慧运维云平台:安全管控与节能降耗双效赋能
  • BYOFF(自定义格式函数)(79)
  • 在 CentOS 9 上安装 Docker 的完整指南
  • 机器学习算法介绍二
  • 【MYSQL | 高级篇 日志、主从复制与读写分离】
  • IO进程线程;多线程;线程互斥同步;互斥锁;无名信号量;条件变量;0905
  • 虚拟机详细图文教程系列15、Linux虚拟机Centos8系统部署禅道开源项目
  • uniapp开发小程序,列表 点击后加载更多数据
  • 云市场周报 (2025.09.05):解读腾讯云AI安全、阿里数据湖与KubeVela
  • 一键生成PPT的AI工具排名:2025年能读懂你思路的AI演示工具
  • 【数据结构、java学习】数组(Array)
  • 越南电网3D地图
  • 大数据毕业设计选题推荐-基于大数据的分化型甲状腺癌复发数据可视化分析系统-Spark-Hadoop-Bigdata
  • Kubernetes 全景指南:从核心概念到云原生未来
  • 视频监控展示插件-js,支持多种视频格式
  • 2025年国家高新技术企业认定:申报材料和流程详解
  • 【面试场景题】spring应用启动时出现内存溢出怎么排查
  • 【NVIDIA AIQ】自定义函数实践
  • 【RelayMQ】基于 Java 实现轻量级消息队列(六)