vue3实现echarts——小demo

news2024/10/7 18:27:04

版本:

效果:

代码:

<template>
    <div class="middle-box">
        <div class="box-title">检验排名TOP10</div>
        <div class="box-echart" id="chart1" :loading="loading1"></div>
        <Empty v-if="chart1Empty"  :image="simpleImage" class="box-empty" />
    </div>
</template>
<script setup>
  import { Empty } from 'ant-design-vue';
  import { onMounted, ref } from 'vue';
  import * as echarts from 'echarts';

  const loading1 = ref(false);
  const chart1Empty = ref(true);
  let chart1 = null;
  
  onMounted(() => {
      getDataOne();
  });

  const getDataOne = async () => {
    loading1.value = true;
    //接口1
    drawDataOne(res.data, '#595FE8');
    chart1Empty.value = false;
    loading1.value = false
  }

  // 图1
  const drawDataOne = (chartData, columnBarColor) => {
    if (chart1 != null && chart1 !='' && chart1 != undefined) {
      chart1.dispose(); //销毁
    }
    let chartDom = document.getElementById('chart1');
    chart1 = echarts.init(chartDom);
    let option = getColumnBarEchartsOption(chartData, columnBarColor);
    chart1.setOption(option);
    window.addEventListener('resize',, chart1.resize);
  };
</script>

注意事项:

1.<Empty>开始根据!chart1来显示和隐藏,但是由于chart1不是响应式数据,不能根据接口实现响应式变化。所以新增ref变量chart1Empty。不建议使用reactive里多个state对象,会有坑,如下

2.vue3和echarts的bug:如果用ref来定义变量,如下图,会出现resize失败的问题。所以推荐使用非响应式变量。比如代码中呈现的普通变量定义方式:let chart1 = null。

3.上述定义变量还会导致:柱状图和折线图的tooltip不显示问题。

原因:

Vue3 底层使用了 proxy 代理创建实例,其创建出来的实例与echarts真正使用的那个存在兼容性问题,所以Echarts 无法从中获取内部变量;故设置echarts实例时,不要使用ref、reactive等响应式方法创建echarts对象,应该使用shallowReactive、shallowRef、或者普通变量即可。

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

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

相关文章

WAF的新选择,雷池 SafeLine-安装动态防护使用指南

什么是 WAF WAF 是 Web Application Firewall 的缩写&#xff0c;也被称为 Web 应用防火墙。 区别于传统防火墙&#xff0c;WAF 工作在应用层&#xff0c;对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果&#xff0c;使其免于受到黑客的攻击&#xff1b; 通俗来讲&#…

什么是 MySQL 锁等待?

本文基于 MySQL 8.0.32 源码&#xff0c;存储引擎为 InnoDB。 1. 先排队 不管是加表锁&#xff0c;还是加行锁&#xff0c;如果不能立即获得锁&#xff0c;加锁事务都需要进入锁等待状态。 事务进入锁等待状态&#xff0c;需要用锁结构来排队。和立即获得锁时的锁结构一样&am…

【Python+微信小程序】学生考勤签到系统(已开源)

1. 简介 &#x1f61d; 这个项目是一款基于微信小程序和Flask框架开发的应用&#xff0c;旨在帮助学校管理学生的考勤和课程信息。系统通过集成数据库管理、API开发以及前后端交互&#xff0c;实现了便捷的学生考勤记录、课程表管理和教师交互功能。其主要特点包括&#xff1a…

intellij idea中使用R语言plot画图无图像问题

1、在intellij idea中使用R语言plot函数时&#xff0c;会遇到各种各样的问题&#xff0c;会出现图片不显示问题&#xff0c; 可以看到&#xff0c;目前我电脑r语言版本为4.2.1&#xff0c;输入下面代码&#xff1a; # # 安装包 # install.packages(ggplot2) # library(ggplot2…

AI是在帮助开发者还是取代他们

目录 1.概述 1.1.AI助力开发者 1.2.AI对开发者的挑战 2.AI工具现状 2.1. GitHub Copilot 2.2. TabNine 2.3.小结 3.AI对开发者的影响 3.1.对开发者的影响 3.2.开发者需要掌握的新技能 3.3.在AI辅助的环境中保持竞争力的策略 4.AI开发的未来 5.总结 1.概述 生成式…

【VScode】常用配置

1.indenticator 增加白色竖条&#xff0c;显示方法范围 2.Git Graph 给git变换分支增添颜色区分 3.Vue 系列 vue 系列&#xff1a;给纯白色代码添加 颜色区分 3.eslint eslint警告&#xff0c;比如{ } 只写了半个会标红提示错误 等错误信息提示 需要配置js等页面 非下…

使用CiteSpace软件对知网文献进行关键词共现/聚类/突现分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

【前端】vue 报错:The template root requires exactly one element

【前端】vue 报错&#xff1a;The template root requires exactly one element 写在最前面Prettier - Code formatter插件解决 Vue 报错&#xff1a;The template root requires exactly one element错误原因示例 解决方法更复杂的示例使用 Fragment 解决问题 小结 &#x1f3…

深度学习——卷积神经网络(convolutional neural network)CNN详解(一)——概述. 步骤清晰0基础可看

在CNN的学习过程中我会提供相应的手算例子帮助理解训练过程。 其他关于神经网络的学习链接如下&#xff1a; 一、了解卷积神经网络 卷积神经网络的作用 总的来说&#xff0c;卷积神经网络的第一个主要作用是对图像进行特征提取&#xff0c;所谓特征提取&#xff0c;就是明白…

亚马逊测评策略全攻略:详析各方案优势与局限,你精通了吗?

亚马逊测评&#xff0c;一个绕不开的话题。不管是对于新手卖家还是资深卖家来说&#xff0c;它都是提升产品销量和排名的有效手段之一。接下来&#xff0c;我将为大家详细解析亚马逊测评的各种方式和注意事项。 一、精准筛选真人测评资源 在寻找真人测评资源时&#xff0c;许多…

【深度学习】扫描全能王的AI驱动创新与智能高清滤镜技术解析

目录 引言1、扫描全能王2、智能高清滤镜黑科技2.1、图像视觉矫正2.2、去干扰技术 3、实际应用案例3.1、打印文稿褶皱检测3.2、试卷擦除手写3.3、老旧文件处理3.4、收银小票3.5、从不同角度扫描文档 4、用户体验结论与未来展望 引言 在数字化时代背景下&#xff0c;文档扫描功能…

记录一次MySQL恢复

一、前言 此文章由一次数据库被黑客删除而引发 由于对于Linux操作、docker使用、MySQL原理这些都相对不是很熟悉&#xff0c;所以记录下来避免以后在工作中遇到类似的问题而惊慌失措。 1.MySQL环境现状 docker管理的&#xff0c;8.0.26版本 启动语句: docker run -d -p 33…

python pdfplumber优化表格提取

样例pdf 直接使用文本提取效果&#xff1a; 使用表格提取 根据提取的文本信息是没办法获取到表格数据的&#xff0c;太乱了。尤其是 3 4列。 解决&#xff1a; 自行画线&#xff0c;根据画线进行提取。 效果&#xff1a; 思路&#xff1a; 1.根据表头进行画竖线 2.根据行坐…

vue3 ~ pinia学习

先看两个图 一个vuex 一个pinia 根据图看出来 pinia更简单了 那么具体怎么操作呢 我们来看下~ 第一步 下载 yarn add pinia # 或者使用 npm npm install pinia 第二步 注册 创建一个 pinia 实例 (根 store) 并将其传递给应用&#xff1a; import { createApp } from v…

vue的$nextTick是什么是干什么用的?

为什么需要使用$nextTick&#xff1f;他的使用场景 1.你在接口返回之后在获取高度 正常等页面加载在mounted这个钩子函数里 这时候就需要找到接口赋值的地方 这样就可以获取到数据操作以后的dom元素了 $nextTick是什么是干什么用的&#xff1f; $nextTick() 是 Vue.js 框…

超详细:安装Linux系统、虚拟现实教程

文章目录 一、如何下载并使用VMware虚拟机1.百度搜索vmware2.进入官网点击Workstation Pro链接3.博通注册对应的账号4.博通填写用户名、密码后直接登录会跳转到博通登录页5.个人使用选择个人版 二、国内镜像网站下载&#xff08;Centos版本&#xff09;三、镜像系统的安装1.打开…

【等保2.0的内容有哪些?】

“在“等保2.0”的基础上&#xff0c;分别增加了云计算安全、移动互联安全、物联网安全、工控系统安全、大数据安全5个拓展需求。 《中华人民共和国刑法》第253条&#xff0c;非法将公民个人资料卖给他人&#xff0c;并处罚金。 违反国家相关法律法规&#xff0c;将其在执行公…

计算机系统基础(三)

1.程序转换概述 机器指令和汇编指令 机器指令与汇编指令意义对应&#xff0c;都是机器级指令 汇编指令 如&#xff1a;M[R[bx]R[di]-6]←R[cl] R&#xff1a;寄存器内容 M&#xff1a;存储单元内容 机器指令 高级语言转换为机器代码的过程 根据计算机系统基础&#xff…

KEYSIGHT是德科技 E5063A ENA 系列网络分析仪

E5063A ENA 矢量网络分析仪 18GHz 2端口 降低无源射频元器件的测试成本 Keysight E5063A ENA 是一款经济适用的台式矢量网络分析仪&#xff0c;可用于测试简单的无源元器件&#xff0c;例如频率最高达到 18 GHz 的天线、滤波器、电缆或连接器。 作为业界闻名的 ENA 系列…

MLLM QLoRA微调实战:基于最新的袖珍Mini-InternVL模型

引言 大型语言模型&#xff08;LLM&#xff09;的世界正在不断发展&#xff0c;新的进步正在迅速出现。一个令人兴奋的领域是多模态LLM&#xff08;MLLMs&#xff09;的发展&#xff0c;这种模型既能够理解文本又能够理解图像&#xff0c;并与之进行交互。因此&#xff0c;这种…