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

news2024/11/17 17:41:37

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#toolbox
        feature: {
          // 按钮的位置和配置参数的排序有关
          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.

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

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

相关文章

Naive UI中的时间选择器如何禁止选择今天之前的时间

:is-date-disabled"dateDisabled"<n-date-pickerv-if"formData.timeEndActive"type"date"style"width: 100%"placeholder"请选择任务结束时间"value-format"yyyy-MM-dd 23:59:59":is-date-disabled"dateD…

mysql-搭建主从复制

文章目录 1、准备主服务器2、准备从服务器3、主库配置3.1、创建MySQL主服务器配置文件&#xff1a; 4、从库配置5、搭建主从&测试5.1、使用命令行登录MySQL主服务器5.2、主机中查询master状态&#xff1a;5.3、从机中查询slave状态&#xff1a;5.4、主机中创建slave用户&am…

CSP-J算法基础 树状结构与二叉树

文章目录 前言树状结构树状结构的基本概念&#xff1a;为什么需要树状结构&#xff1f;优点树状结构的示例 二叉树什么是二叉树&#xff1f;二叉树的类型什么样的树不是二叉树&#xff1f;二叉树的五种形态 完全二叉树相关概念完全二叉树的定义&#xff1a; 相关概念1. **高度&…

SAAS智慧工地源码,建筑行业数字化管理云平台系统

智慧工地是建筑行业数字化转型的重要组成部分&#xff0c;它通过集成物联网、大数据、云计算、人工智能等现代信息技术&#xff0c;对建筑工地进行智能化管理&#xff0c;以提高施工效率、保障施工安全、控制施工成本、提升施工质量。 以下是智慧工地的主要特点和应用&#xff…

【油猴脚本】00003案例 Tampermonkey油猴脚本引入css 库,油猴脚本css库的使用

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

通过python提取PDF文件指定页的图片

整体思路 要从 PDF 文件中提取指定页和指定位置的图片&#xff0c;可以分几个步骤来实现&#xff1a; 1.1 准备所需工具与库 在 Python 中处理 PDF 和图像时&#xff0c;需要使用几个库&#xff1a; PyMuPDF (fitz)&#xff1a;用于读取和处理 PDF 文件&#xff0c;可以精确…

【STM32】esp8266连接wifi

1.配置stm32cubemx 使用串口二接收esp8266的数据&#xff0c;单片机接收&#xff0c;使用串口1将数据发送给串口助手 串口2波特率设置74880&#xff0c;串口1设置115200 在初始化的时候需要将复位引脚拉低20ms,然后再拉高20ms, 设置GPIOB的输出模式 对PB12做输出处理 2.…

多旋翼无人机挂载电激发弹发射器技术详解

多旋翼无人机挂载电激发弹发射器技术是一种结合了无人机的高机动性和电激发弹发射器的精确打击能力的先进技术。以下是对该技术的详细解析&#xff1a; 一、多旋翼无人机概述 多旋翼无人机&#xff0c;也称为多轴飞行器或多旋翼飞行器&#xff0c;是一种具有三个及以上旋翼轴…

【pycharm】安装以及简单使用教程

以windows版本举例&#xff1a; 1、首先去Pycharm官网&#xff0c;或者直接输入网址&#xff1a;http://www.jetbrains.com/pycharm/download/#sectionwindows&#xff0c;下载PyCharm安装包&#xff0c;根据自己电脑的操作系统进行选择&#xff0c;对于windows系统选择下图的…

大数据处理技术:Hadoop开发环境搭建

目录 1 实验名称 2 实验目的 3 实验内容 4 实验原理 5 实验过程或源代码 5.1 JavaJDK的配置 5.2 Hadoop安装与伪分布式集群搭建 5.3 HDFS系统初体验 6 实验结果 6.1 JavaJDK的配置结果 6.2 Hadoop安装与伪分布式集群搭建结果 6.3 HDFS系统初体验结果 1 实验名称 Ha…

用Cursor生成一个代办事项列表的功能

一、本地新建html文件 二、输入代码 2.1 Cursor描述 其实这一段代码使用Cursor生成&#xff0c;可以输入如下内容&#xff0c;即可自动生成代码&#xff1a; 创建一个代办事项列表应用的基本结构&#xff0c;呈现在可交互界面上&#xff0c;1&#xff0c;提供可交互界面&…

乐器检测系统源码分享

乐器检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

【Vue】- Vue表达式

文章目录 知识回顾前言Vue项目介绍 源码分析1. 项目结构介绍&#xff08;单页面应用程序&#xff09;2. 项目运行流程图(单页面应用程序)3. 选项式和组合式api4. 插值表达式 {{}} 胡子语法5. reactive函数6. ref表达式 拓展知识reactive和ref的选择 总结 知识回顾 前言 Vue项…

利用python处理线性规划问题

利用python处理线性规划问题 linprog函数基本例题例题1例题2 典型例题例一&#xff1a;生产决策问题例一&#xff1a;生产决策问题 &#xff08;例题和部分解答思路来自清风老师&#xff09; linprog函数 导入模块 from scipy.optimize import linprog函数功能 Linear progra…

计算机毕业设计 毕业季一站式旅游服务定制平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

视频笔记1

玩转apollo课程内讲解靠边启动场景_哔哩哔哩_bilibili 用open_space_roi_decider 改后 善用坐标点 如何不影响其它场景&#xff1a;if判断

Gradio快速部署构建AIGC的web应用 ,python

Gradio快速部署构建AIGC的web应用 &#xff0c;python Gradio开源项目链接&#xff1a; https://github.com/gradio-app/gradiohttps://github.com/gradio-app/gradio &#xff08;1&#xff09;python的pip安装&#xff1a; pip install gradio &#xff08;2&#xff09;写…

webpack打包原理

目录 1、搭建结构&#xff0c;读取配置参数2、配置参数对象初始化 Compiler&#xff08;new Compiler(webpackOptions)&#xff09;3、挂载配置文件中的插件&#xff0c;4、执行Compiler 中的 run 方法进行编译5、根据配置文件中的entry 配置项找到所有的入口6、从入口文件出发…

HAL库学习梳理——UART

笔者跟着B站铁头山羊视频学习 STM32-HAL库 开发教程。下面对HAL库有关UART课程知识和应用做一个梳理。 省流&#xff1a; uint8_t byteNumber 0x5a;uint8_t byteArray[] {0,1,2,3,4,5};char ch a;char *str "Hello word";HAL_UART_Transmit(&huart1,&by…

Windows环境下 VS2022 编译 Xvid 源码

Xvid Xvid 是一个开源的视频编解码器&#xff0c;遵循 MPEG-4 视频编码标准&#xff0c;特别是 MPEG-4 Part 2 Advanced Simple Profile。它被广泛用于视频的压缩和解压&#xff0c;尤其是在互联网上分享视频文件时&#xff0c;因为它能够有效地减小文件大小而不会过多损失视频…