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

【Echarts】vue3打开echarts的正确方式

ECharts 是一个功能强大、灵活易用的数据可视化工具,适用于商业报表、数据分析、科研教育等多种场景。那么该如何优雅的使用Echarts呢? 这里以vue3为例。

安装echarts

pnpm i echarts

封装公用方法

// @ts-nocheck
import * as echarts from 'echarts';
// 我们这里借助vueUse提高可视化体验, useResizeObserver监听dom大小改变, useDebounceFn监听中添加防抖
import { useResizeObserver, useDebounceFn } from '@vueuse/core';
// 引入地图json 按需,不是地图则不需要
// import china from './china.json';
// echarts.registerMap('china', china);/*** @param el 图表挂在dom* @param options 图表配置*/
export function useECharts(el: HTMLElement, options: echarts.EChartsOption) {let chart: any;// 图表初始化chart = echarts.init(el);// 设置图表配置chart.setOption(options);// 挂载dom宽度改变监听重新渲染图表useResizeObserver(el,useDebounceFn(() => {chart.resize();}, 50));// 定义setData方法const setData = (dataset: echarts.DatasetOption | echarts.DatasetOption[]) => {chart.setOption(Object.assign(options, { dataset }));};// 返回echarts实例,和更新data方法,方便更新图表return [chart, { setData }];
}

图表使用

<template><div ref="helloChartRef" class="chart"></div>
</template>
<script setup lang="ts">import { onMounted, ref } from 'vue';import { useECharts } from '@/utils';import type { EChartsType } from 'echarts';let chart: EChartsType;const helloChartRef = ref();const theme = ref('dark');onMounted(() => {// todo 为了vue模板看起来干净,可以吧options抽离到外部js中去chart = useECharts(helloChartRef.value, {xAxis: {// x轴data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'],},yAxis: {// y轴},toolbox: {// 工具箱 官方文档:http://echarts.apache.org/zh/option.html#toolboxfeature: {// 按钮的位置和配置参数的排序有关restore: {}, // 刷新按钮dataZoom: {// 缩放按钮yAxisIndex: false, // 不选取y轴的坐标(就是全选y轴)},saveAsImage: {}, // 保存为图片的按钮},},series: {// 图表类型name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20],},});});
</script><style lang="less" scoped>.chart {height: 300px;}
</style>

效果

是不是很容易就上手了呢,也可以到我自己部署的案例网站看实际效果呢,还可以边看效果边看源码。
请添加图片描述

相关网站

  • echarts官方文档
  • 博客demo

摸鱼博客就写到这啦,听我说谢谢你,因为有你,我的博客浏览+1.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 惬意享受阅读,优雅的微信公众号订阅方式,极空间部署『WeWe RSS』
  • C++函数在库中的地址
  • java面向对象:构造方法
  • PMP--一模--解题--131-140
  • 感知器神经网络
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——12.二叉树(习题)
  • 【Kubernetes】常见面试题汇总(十)
  • 代码随想录训练营第34天|dp前置转移
  • 【C++ Primer Plus习题】16.3
  • PHP:强大的Web开发语言
  • 基于微信小程序的高校实验室管理系统的设计与实现
  • 数据结构之外部排序
  • ros学习笔记.4 Path Planning Part 2 (避障)
  • 【Linux基础】冯诺依曼体系结构操作系统的理解
  • 1.接口测试基础
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • avalon2.2的VM生成过程
  • eclipse的离线汉化
  • JavaScript学习总结——原型
  • Magento 1.x 中文订单打印乱码
  • Objective-C 中关联引用的概念
  • Travix是如何部署应用程序到Kubernetes上的
  • 飞驰在Mesos的涡轮引擎上
  • 关于springcloud Gateway中的限流
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 聊聊hikari连接池的leakDetectionThreshold
  • 如何使用 JavaScript 解析 URL
  • 如何在 Tornado 中实现 Middleware
  • 我看到的前端
  • 学习Vue.js的五个小例子
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • UI设计初学者应该如何入门?
  • 昨天1024程序员节,我故意写了个死循环~
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #Lua:Lua调用C++生成的DLL库
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (11)MSP430F5529 定时器B
  • (CPU/GPU)粒子继承贴图颜色发射
  • (Java入门)学生管理系统
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (三)elasticsearch 源码之启动流程分析
  • (五)IO流之ByteArrayInput/OutputStream
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)linux 命令大全
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • ./和../以及/和~之间的区别
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Core中如何集成RabbitMQ
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET/C# 使用反射注册事件
  • .Net插件开发开源框架
  • .NET是什么
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?