Echarts组件初步封装

一、业务场景:
最近在vue中使用echarts时 有多处需要用到各种图表,想着自己封装一个便于多次复用
为了避免大家走弯路,为大家整理了一下,粘走可以直接用的那种
二、具体实现步骤:
1、先在终端安装echarts

npm install echarts --save

2、在main.js中引入(这里分5.0以上和以下两个版本来安装)

5.0以上版本

  import * as echarts from 'echarts'

5.0以下版本

  import  echarts  from 'echarts'

注册在原型上 `

 vue.prototype.$echarts   = echarts

3、创建图表组件(Echarts)
随机搞一个id
其他内容都由父组件传过来
代码如下:

<template>
  <div>
    <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
    <div :id="uuid" :style="style"></div>
  </div>

</template>

<script>

    export default {
      name: "MyCharts",
      props:{
        dataSource:{
          type:Object,
          default:null,
          require:true
        },
        canvasWidth:{
          type:String,
          default:'',
          require:true
        },
        canvasHeight:{
          type:String,
          default:'',
          require:true
        },
      },
      data() {
        return {
          uuid:undefined,
          myChart:null,
        }
      },
      computed:{
          style(){
            return {
              width: this.canvasWidth,
              height:this.canvasHeight
            }
          }
      },
      created() {
          // 时间戳+随机字符
        	this.uuid = new Date().getTime()+Math.random().toString(32).slice(2, 10)
      },
      mounted() {
        	this.init()
      },
      methods:{
        init(){
          // 基于准备好的dom,初始化echarts实例
          this.myChart = this.$echarts.init(document.getElementById(this.uuid));
            // 绘制图表
          this.myChart.setOption(this.dataSource);
        }
      }
    }
</script>

<style scoped>

</style>

4、在src下新建一个js文件(dataSource.js),把数据单独提出来
代码如下:

export const dataSource2 = {
  title: {
    text: 'Are you OK?'
  },
  tooltip: {},
  xAxis: {
    data: ['魄力', '建议', '先干', '成了', '马拉松', '成败得失']
  },
  yAxis: {},
  series: [
    {
      name: '小米',
      type: 'bar',
      data: [60, 45, 52, 38, 49, 55]
    }
  ]
}
export const dataSource = {
  title: {
    text: '生死看淡,不服就干'
  },
  tooltip: {},
  xAxis: {
    data: ['梦想', '坚持', '力量', '美好', '坚韧', '东西']
  },
  yAxis: {},
  series: [
    {
      name: '雷总',
      type: 'bar',
      data: [50, 80, 66, 70, 69, 71]
    }
  ]
}

5、在父组件中引入图表组件
代码如下:

<template>
    <div>
      <MyCharts :dataSource="dataSource" :canvasWidth="canvasWidth" :canvasHeight="canvasHeight"></MyCharts>
      <MyCharts :dataSource="dataSource2" :canvasWidth="canvasWidth" :canvasHeight="canvasHeight"></MyCharts>
    </div>
</template>
<script>
    import MyCharts from "@/components/mycharts/MyCharts";
    import {dataSource,dataSource2} from "@/dataSource";
    export default {
        name: "CrudPage",
      components: {MyCharts},
      data() {
        return {
          canvasWidth:'600px',
          canvasHeight:'400px',
          dataSource:dataSource,
          dataSource2:dataSource2
        }
      },
      created() {

      },
      methods:{

      }
    }
</script>

<style scoped>

</style>


四、效果展示:
在这里插入图片描述

你已经成功了,撒花。
今天的分享到此结束,欢迎小伙伴们一起交流

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

管理类联考–复试–英文面试–问题--规划介绍原因做法--纯英文版

借鉴 https://www.bilibili.com/video/BV1Dk4y187zN/?p4&spm_id_from333.880.my_history.page.clickhttps://www.bilibili.com/video/BV1Dk4y187zN/?p4&spm_id_from333.880.my_history.page.click https://ttsreader.com/zh/https://ttsreader.com/zh/ 规划 视频版…

一文掌握Java动态代理的奥秘与应用场景

一、基本概念 为某个对象提供一个代理&#xff0c;以控制对这个对象的访问。代理类和委托类有共同的父类或父接口&#xff0c;这样在任何使用委托类对象的地方都可以用代理对象来替代。代理类负责请求的预处理、过滤、将请求分派委托类处理、以及委托类执行完请求后的后续处理。…

中国软件评测中心发布《健康软件安全白皮书》,美创参编分享方案实践

日前&#xff0c;中国软件评测中心网络安全和数据安全研究测评事业部发布《健康软件安全白皮书》研究成果&#xff0c;美创科技深度参与此次白皮书编写工作&#xff0c;针对健康软件目前面临的安全风险&#xff0c;分享数据安全建设思路。 白皮书详细剖析健康软件面临的网络和数…

盲盒抽卡机小程序:探索神秘盲盒,尽享抽卡乐趣

在盲盒文化的热潮中&#xff0c;盲盒抽卡机作为一种深受大众喜爱的娱乐形式&#xff0c;正逐渐成为市场上的新宠。为了满足广大盲盒爱好者和抽卡玩家的需求&#xff0c;我们积极投身于盲盒抽卡机小程序的开发&#xff0c;旨在通过创新的技术手段&#xff0c;为用户带来全新的盲…

PyTorch出现:RuntimeError: An attempt has been made to start a new process...报错

1.查看显卡&#xff1a; 第一步&#xff1a;同时按下键盘的winr键&#xff0c;输入cmd 第二步&#xff1a;随后输入 nvidia-smi 2.查看下载安装的包&#xff1a; conda list conda list 3.问题报错 PyTorch出现&#xff1a;RuntimeError: An attempt has been made to …

解决vue3中刷新浏览器页面的axios请求状态变为canceled

最近在开发中要加一个悲观锁的功能&#xff0c;具体需求是&#xff1a;用户1和用户2不能同时打开一个模型进行编辑&#xff0c;用户1优先进入模型后&#xff0c;要对该模型进行上锁&#xff0c;关闭该模型或刷新页面时要进行解锁&#xff0c;此时在刷新页面时出现了问题。 刷新…

线上linux服务器升级nginx

一个nginx版本空包 一个pcre文件 一个zlib文件 ./configure配置文件 make编译 make install复制所有文件到nginx 如果nginx -v无版本号 检查环境变量cat /etc/profile 编辑 环境变量vi /etc/profile 按i进入编辑模式 按esc进入查看模式 因为path中并未使用%JAVA_HOME%字样…

力扣---全排列---回溯

思路&#xff1a; 递归做法&#xff0c;一般会有visit数组来判断第 i 位是否被考虑了。我们先考虑第0位&#xff0c;再考虑第1位&#xff0c;再考虑第2位...dfs函数中还是老套路&#xff0c;先判定特殊条件&#xff0c;再从当下的角度&#xff08;决定第 j 位是哪个元素&#x…

Docker 应用部署

MySQL部署 需求 在 Docker 容器中部署 MySQL &#xff0c;并通过外部 mysql 客户端操作 MySQL Server 。 步骤 1. 搜索mysql镜像 docker search mysql 2. 拉取mysql镜像 docker pull mysql:5.6 3. 创建容器&#xff0c;设置端口映射、目录映射 事先在/root目录下创建m…

VScode手动安装vsix格式插件,提示安装插件与code版本不兼容问题

问题描述: vscode手动按装插件提示"插件不兼容code版本 原因方案:修改安装包内的package.json文件中的版本号与vscode版本号对应即可 解决步骤 以(adpyke.codesnap-1.3.4.vsix)安装包为例 手动安装vscode弹出 无法安装扩展“adpyke.codesnap-1.3.4”&#xff0c;它与 …

每周一算法:迭代加深A*

题目链接 AcWing 180. 排书 题目描述 给定 n n n 本书&#xff0c;编号为 1 ∼ n 1\sim n 1∼n。 在初始状态下&#xff0c;书是任意排列的。 在每一次操作中&#xff0c;可以抽取其中连续的一段&#xff0c;再把这段插入到其他某个位置。 我们的目标状态是把书按照 1 ∼…

提高企业员工生产力的办法

在现代商业环境中&#xff0c;提高企业员工生产力是企业持续发展的关键因素之一。员工生产力的提升不仅有助于企业提高运营效率&#xff0c;还能增强企业的市场竞争力。那么&#xff0c;如何有效地提高企业员工生产力呢&#xff1f;本文将就此问题进行探讨。 一、引入先进技术软…

[ C++ ] STL---stack与queue

目录 stack简介 stack的常用接口 queue简介 queue的常用接口 stack的模拟实现 queue的模拟实现 stack简介 1. stack是具有后进先出操作的一种容器适配器&#xff0c;其只能从容器的一端进行元素的插入与删除操作&#xff1b; 2. stack是作为容器适配器被实现的&#xff0…

jmeter接口自动化测试框架

接口测试可以分为两部分&#xff1a; 一是线上接口&#xff08;生产环境&#xff09;自动化测试&#xff0c;需要自动定时执行&#xff0c;每5分钟自动执行一次&#xff0c;相当于每5分钟就检查一遍线上的接口是否正常&#xff0c;有异常能够及时发现&#xff0c;不至于影响用…

基于preCICE的Fluent适配器开发分享

1 开发目的 后向台阶流是流动分离现象的经典代表&#xff0c;为了更有效地控制后向台阶流中的重要特征参数&#xff0c;如背部分离压强和湍流强度&#xff0c;进行了耦合分析。通过该耦合分析&#xff0c;能够深入研究后向台阶流的特性&#xff0c;并探索如何控制这些参数对流…

RK3568 安装Miniconda3

下载链接:https://download.csdn.net/download/smile_5me/89012477?spm=1001.2014.3001.5503 需要RK3568运行Ubuntu,之前的文章有关于如何安装Ubuntu以及遇到的问题 1、 拷贝 Miniconda3-latest-Linux-aarch64.sh 到开发板 2、运行安装 Miniconda3-latest-Linux-aarch64.…

央视6周年巨献《中国神话》AI微短剧首发,人工智能频道震撼上线

在庆祝成立六周年之际&#xff0c;中央广播电视总台&#xff08;简称央视&#xff09;为观众带来了一场科技与文化的交融盛宴。近日&#xff0c;央视隆重发布了我国首部AI全流程微短剧《中国神话》&#xff0c;并正式上线了人工智能专业频道。这一系列举措彰显了央视在人工智能…

网络: 应用层

网络资源 uri(uniform resource identifier) 统一资源标识符。url(uniform resource location) 统一资源定位符&#xff0c;统指绝对路径。urn(uniform resource name) 统一资源名。 http 报文结构 第一部分简略信息&#xff0c;包含请求方法、url 和协议版本&#xff1b;或…

【c++】string类---标准库(STL)中的string类

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;c_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.STL(标准库) 1.1 什么是STL 1.2 STL的版本 1.3 STL的六大组件 1.4 STL的重要性 1.5 如何学习STL 6.STL的缺陷 2. 为什么要学习st…

STM32定时器详解(1)

文章目录 前言一、STM32中定时器的分类二、基础定时器2.1基础定时器框图讲解2.2基础定时器计数功能讲解 三、通用定时器3.1通用定时器基本描述3.2通用定时器硬件框图 四、高级定时器4.1高级定时器基本描述4.2高级定时器硬件框图 总结 前言 本篇文章将带大家来学习STM32中的定时…