关于echarts封装组件以及多次更新数据信息加载问题

项目中经常使用到echarts插件,使用时会遇到封装组件的问题,一个组件到底怎么封装才是完善的?仁者见仁智者见智思路不同封装的方式就是不同的。废话不多直接上封装的代码:


<template>
    <div :id="id" :style="style"></div>
</template>
   
<script>
  import * as echarts from 'echarts'
  export default {
    name: 'MyEcharts',
    data () {
      return {
          chart: ''
      }
    },
    //父组件传值接受内容
    props: {
      id: {
          type: String
      },
      width: {
          type: String,
          default: '100%'
      },
      height: {
          type: String,
          default: '100%'
      },
      option: {
        type: Object,
        default() {
          return { 
            //echarts中的基本内容都在这里。其实就是一个空壳内容,便于加载echarts内容
            angleAxis: {},
            title: {},
            tooltip: {},
            grid: {},
            xAxis: {},
            yAxis: {},
            toolbox: { },
            dataZoom: [],
            visualMap: {},
            series: {}
          }
        }
      }
    },
    computed: {
      style() {
        return {
          width: this.width,
          height: this.height
        }
      }
    },
    watch: {
      option: {
        handler(newVal, oldVal) {
          //该判断滚句自己需要进行改装,若是懒这样使用就行。
          if (this.chart) {
            this.init(); //监听事件,这才是关键点
            this.chart.setOption(newVal)
          } else {
            this.init();
          }
        },
        deep: true
      },
    },
    methods: {
      init() {
        this.chart = echarts.init(document.getElementById(this.id));
        this.chart.clear(); //清空数据使用,可能没用,写上总比没有要好一些。
        this.chart.setOption(this.option)
        window.addEventListener("resize", this.chart.resize);
      },

    },
    mounted() {
      this.init()
    },
  }
</script> 

该代码直接引用就能使用。

父组件内容:

<!--引用组件-->
<echarts id="demo" class="echarts_Top aaaaaa" height="30rem" :option='ChartTestData'></echarts>

import echarts from 'xxx/xxx/echarts';//引入方式很多自己根据自己想法来
 export default {
      components: { //组件名称
        echarts
      },
      data(){
        return{
            ChartTestData:{},//echarts内容
            gridDate :{
              left: '3%',
              right: '4%',
              bottom: '3%',
              containLabel: true
            },
            tooltipDate:{
              trigger: 'axis',
              axisPointer: {
              type: 'cross',
              crossStyle: {
                  color: '#999'
              }
            }
          },
          yAxisDate : [
            {
              type: 'value',
              name: '功率',
              min: 0,
              axisLabel: {
                formatter: '{value} KW'
              }
            },
          ],
           titleDate:{},
        }
      },
      methods:{
          getLiat(){
               this.ChartTestData ={ 
                title: this.titleDate, //在data中声明
                tooltip: this.tooltipDate, //在data中声明
                grid : this.gridDate, //在data中声明
                legend:{},
                xAxis: [
                  {
                    type: 'category',
                    data: ['1','2'], //X轴内容  遍历或者后台直接返回单独数据v.dates
                    axisPointer: {
                      type: 'shadow'
                    }
                  }
                ],
                yAxis : this.yAxisDate,
                series : seriesDate, //展示内容数据(遍历或者后台直接返回单独数据v.dates)  
              } 
          }
      }
  }

结果展示:

喜欢关注一下。一起学习探索未来。

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

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

相关文章

日料西餐厅餐品预约小程序的作用是什么

日料店西餐厅客源也不少&#xff0c;对经营者来说&#xff0c;高市场需求度的同时也面临一些痛点&#xff1a; 1、品牌宣传拓客难 日料/西餐厅虽然已经存在多年&#xff0c;但依然有大量用户并没有消费过&#xff0c;因此这需要商家不断拓展品牌实力及餐品呈现吸引客户前往&a…

银行汇款回执单制作器,回执单,工商农业建设邮政中国,易语言开源版!

易语言学了7年&#xff0c;用画板做一个汇款单生成器轻而易举&#xff0c;但是我加了水印的&#xff0c;并且也没有在这里提供软件的下载地址&#xff0c;图片上面也加了水印处理&#xff0c;所以仅仅只是技术教程和思路分享&#xff0c;然后代码最后也会分享出来&#xff0c;就…

unity Holoens2开发,使用Vuforia识别实体或图片 触发交互

建议&#xff1a;先看官方文档 我使用的utniy 版本&#xff1a;Unity 2021.3.6f1 官方建议&#xff1a;混合现实工具包简介 - 设置项目并使用手势交互 - Training | Microsoft Learn 配置了正确工具的 Windows 10 或 11 电脑Windows 10 SDK 10.0.18362.0 或更高版本安装了 U…

Vue2+elementui项目导出el-table的数据为xlsx表格

1、安装3个插件 &#xff08;file-saver、 xlsx、script-loader&#xff09; npm install -S file-saver xlsxnpm install -D script-loader 2、在utils目录下新建一个 Export2Excel.js 脚本 &#xff08;我的路径在/utils/Export2Excel.js&#xff09; /* eslint-disable *…

Apache Storm 2.5.0 集群安装与配置

1、下载Apache Storm 2.5.0 https://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm-2.5.0/ 2、准备3台服务器 192.168.42.139 node1 192.168.42.140 node1 192.168.42.141 node2 3、配置host [rootnode1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost…

用循环结构程序自动化计算——计数循环

用循环结构程序自动化计算——计数循环 低阶目标&#xff1a; 利用for循环结构来完成已知次数的自动化处理&#xff0c;掌握计数循环结构应用方法 高阶目标&#xff1a; 学会利用for循环解决生活中的实际问题 用循环结构程序自动化计算——计数循环 用循环结构程序自动化计算…

python web框架 flask基础入门教程

python web框架 flask基础入门教程 今天我们写一个flask基础入门教程&#xff0c;当然也会覆盖很多重要的知识点&#xff0c;在这篇博客中&#xff0c;我们主要会讲解如下内容&#xff1a; 1、通过flask框架向web传输和接收参数 2、实现静态图片插入和图书上传 3、实现搭建…

k8s 配置资源管理

配置资源管理 //Secret Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源&#xff0c;这类数据虽然也可以存放在 Pod 或者镜像中&#xff0c;但是放在 Secret 中是为了更方便的控制如何使用数据&#xff0c;并减少暴露的风险。 有三种类型&#xff1a; ●kubernetes.…

【C++】继承详解

本篇要分享的内容是关于继承的内容哼哼哼啊啊啊啊啊啊啊啊啊啊啊啊啊啊 以下为本篇目录 目录 1.简单了解继承 2.继承的简单定义 3.继承简单使用 4.继承方式 4.1基类的privat 4.2基类的protected 4.3不可见与private的区别 5.父子类对象赋值转换 6.继承的作用域 7.子…

【Linux权限:系统中的数字锁与安全之门】

1.Linux下的用户 Linux下有两种用户&#xff1a;超级用户&#xff08;root&#xff09;、普通用户。 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受限制普通用户&#xff1a;在linux下做有限的事情。超级用户的命令提示符是“#”&#xff0c;普通用户的命令…

计算机网络实验

计算机网络实验 使用软件PT7.0按照上面的拓扑结构建立网络&#xff0c;进行合理配置&#xff0c;使得所有计算机之间能够互相通信。并且修改各交换机的系统名称为&#xff1a;学号_编号&#xff0c;如你的学号为123&#xff0c;交换机Switch0的编号为0&#xff0c;则系统名称为…

基于Jaccard相似度的推荐算法---示例

目录 数据展示推荐算法的分类基于相似度基于流行度/上下文/社交网络 Jaccard相似度分析数据的特点可以考虑的方法计算方法优缺点计算用户之间的Jaccard相似度获取与给定最相似的10个用户对1713353的用户推荐10本书 数据展示 import pandas as pd import numpy as np# 读取CSV文…

如何处理【SVC】中的样本不均衡问题

样本不均衡是指在一组数据集中&#xff0c;标签的一类天生 占有很大的比例&#xff0c;但我们有着捕捉出某种特定的分类的需求的状况。比如&#xff0c;我们现在要对潜在犯罪者和普通人进行 分类&#xff0c;潜在犯罪者占总人口的比例是相当低的&#xff0c;也许只有2%左右&…

CSS 边框、轮廓线

一、CSS边框&#xff1a; CSS边框属性允许指定一个元素边框的样式和颜色。 1&#xff09;、边框样式&#xff1a;border-style属性用来定义边框的样式&#xff0c;border-style值&#xff1a; 2&#xff09;、边框宽度&#xff1a;border-width属性用于指定边框宽度。指定变宽…

Python - Windows下使用Python脚本同步一个文件夹下的所有文件到另一个文件夹下

Python同步文件 在Windows下使用Python脚本同步一个文件夹下的所有文件到另一个文件夹下 示例代码 import logging import os import shutildef sync_files(src_file_path, dst_dir_path, exclude_list):try:if not os.path.exists(src_file_path):os.makedirs(src_file_pat…

RISC Zero ZKP协议中的商多项式

1. 引言 前序博客见&#xff1a; Reed-Solomon Codes及其与RISC Zero zkVM的关系 RISC Zero zkVM主要针对可验证计算&#xff0c;其具有隐私和可扩展属性&#xff1a; Reed-Solomon Codes及其与RISC Zero zkVM的关系博客中指出&#xff1a;RISC Zero中的Reed-Solomon Code…

django+drf+vue 简单系统搭建 (2) - drf 应用

按照本系统设置目的&#xff0c;是为了建立一些工具用来处理简单的文件。 1. 准备djangorestframework 关于drf的说明请参见&#xff1a;Django REST Framework教程 | 大江狗的博客 本系列直接使用drf的序列化等其他功能。 安装 conda install djangorestframework conda i…

Spire.Office for .NET 8.10.2 同步更新-Crk

Spire.Office for .NET是 E-iceblue 提供的企业级 Office .NET API 的组合。它包括Spire.Doc、Spire.XLS、Spire.Spreadsheet、Spire.Presentation、Spire.PDF、Spire.DataExport、Spire.OfficeViewer、Spire.PDFViewer、Spire.DocViewer、Spire.Barcode和Spire.Email。Spire.O…

OceanBase 如何通过日志观测冻结转储流程?

本文旨在通过日志解析 OceanBase 的冻结转储流程&#xff0c;以其冻结检查线程为切入点&#xff0c;以租户&#xff08;1002&#xff09;的线程名为例。 作者&#xff1a;陈慧明&#xff0c;爱可生测试工程师&#xff0c;主要参与 DMP 和 DBLE 自动化测试项目。 爱可生开源社区…