vue2.0中使用v-if/v-show切换后echarts不显示和宽高问题

vue2.0中使用v-if/v-show切换后echarts不显示和宽高问题

  • 需求描述
  • 问题描述
    • 问题解析
  • 解决方案
    • 使用v-show替代(不推荐)
    • v-if使用$nextTick(推荐)

需求描述

使用ehcarts时,请求数据时加loading,请求结束后取消loading并显示图表

在这里插入图片描述
在这里插入图片描述

问题描述

最开始使用v-if和v-else判断,loading状态改变时,echarts直接不显示,打开F12也无图表对象渲染。

在这里插入图片描述
在这里插入图片描述

问题解析

v-if:当隐藏结构时该结构会直接从整个dom树中移除(删除重构DOM)

因为在切换后并没有触发生命周期函数,没有获取到dom结构,而无论是v-if或v-else-if或v-else,都不能和ref一起使用,而且不论是直接使用,还是在子元素上使用ref,都会获取不到真实dom元素的。

解决方案

使用v-show替代(不推荐)

v-show:当隐藏结构时是在该结构的style中加上display:none,结构依然保留。(改变style)

所以使用v-show在什么情况都能获取真实dom。

但新的问题,tab切换页面使用v-show时,echarts图表的宽高变成100px,因为v-show 本身是结构已经存在,当数据发生变化时,结构并未重新渲染,会出现 echarts 图表未获取到最外层大盒子的宽度而显示错误的情况。
在这里插入图片描述

在这里插入图片描述

v-if使用$nextTick(推荐)

this.$nextTick()原理:

  • Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是按一定的策略进行 DOM 的更新。
  • Vue 在修改数据后,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统一进行视图更新。
  • 首先修改数据,这是同步任务。同一事件循环的所有的同步任务都在主线程上执行,形成一个执行栈,此时还未涉及 DOM 。
  • 然后Vue 开启一个异步队列,并缓冲在此事件循环中发生的所有数据改变。如果同一个 watcher 被多次触发,只会被推入到队列中一次。
  this.$nextTick(() => {
     this.initLineCharts(lineData);
    //nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据之后立即使用 $nextTick,则可以在回调中获取更新后的 DOM。
    //所以使用v-if后能获取到dom元素了
 })

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

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

相关文章

XmlElement注解在Java的数组属性上,以产生多个相同的XML元素

例如&#xff0c;下面这段XML数据&#xff0c;有多个data元素&#xff0c;并且它们级别相同: <?xml version"1.0" encoding"UTF-8"?><request><reqtype>05</reqtype><secret>test</secret><body><userid&…

【数据结构】【版本2.0】【树形深渊】——二叉树入侵

目录 引言 一、树的概念与结构 1.1 树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用 二、二叉树的概念与结构 2.1 二叉树的概念 2.2 特殊二叉树 满二叉树 完全二叉树 2.3 现实中的二叉树 2.4 二叉树的性质 2.5 二叉树的存储结构 顺序存储 链式…

掌握源码,轻松搭建:一站式建站系统源码 附完整搭建步骤与教程

随着互联网的快速发展&#xff0c;网站已成为人们生活中不可或缺的一部分。然而&#xff0c;对于许多初学者或中小企业来说&#xff0c;搭建一个完整的网站系统并非易事。这涉及到前端和后端的开发、数据库管理等多个环节。为了解决这一痛点&#xff0c;我们推出了一站式建站系…

Redis变慢怎么办?

一、Redis为什么变慢了 1.Redis 真的变慢了吗&#xff1f; 对 Redis 进行基准性能测试 例如&#xff0c;我的机器配置比较低&#xff0c;当延迟为 2ms 时&#xff0c;我就认为 Redis 变慢了&#xff0c;但是如果你的硬件配置比较高&#xff0c;那么在你的运行环境下&#xf…

synchronized锁膨胀过程

轻量级锁&#xff1a; 使用场景&#xff1a;如果一个对象虽然有多线程要加锁&#xff0c;但加锁的时间是错开的&#xff08;也就是没有竞争&#xff09;&#xff0c;那么可以 使用轻量级锁来优化。 轻量级锁原理 1.创建锁记录&#xff08;Lock Record&#xff09;对象&#…

【前端学java】java中的字符串操作(10)

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学 java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08…

抖音电商双11官方数据最全汇总!

11月13日&#xff0c;抖音电商数据发布“抖音商城双11好物节”数据报告&#xff0c;展现双11期间平台全域经营情况及大众消费趋势。 报告显示&#xff0c;10月20日至11月11日&#xff0c;抖音电商里的直播间累计直播时长达到5827万小时&#xff0c;挂购物车的短视频播放了1697亿…

PEFT LoraConfig参数详解

参数高效微调 (PEFT) 可以使预训练模型高效适应下游应用&#xff0c;而无需微调所有模型参数。 PEFT 支持广泛使用的大型语言模型低秩适应 (LoRA)。 为了从预训练的 Transformer 模型创建 LoRA 模型&#xff0c;我们导入并设置 LoraConfig。 例如&#xff0c; from peft impo…

数据预处理pandas pd.json_normalize占用内存过大优化

问题描述 从ES下载数据&#xff0c;数据格式为json&#xff0c;然后由pandas进行解析&#xff0c;json中的嵌套字段会进行展开作为列名(由于维度初期无法预测&#xff0c;所以根据数据有啥列就使用啥列&#xff0c;这是最方便的点)&#xff0c;变成表格&#xff0c;方面了后续…

Proxmox download

Proxmox VE proxmox Virtual Environment是一个基于 QEMU/KVM 和 LXC 的开源服务器虚拟化管理解决方案。您可以使用集成的、易于使用的 Web 界面或通过 CLI 管理虚拟机、容器、高可用性集群、存储和网络。Proxmox VE 代码根据 GNU Affero 通用公共许可证第 3 版获得许可 Prox…

Vue typescript项目配置eslint+prettier

1.安装依赖 安装 eslint yarn add eslint --dev安装 eslint-plugin-vue yarn add eslint-plugin-vue --dev主要用于检查 Vue 文件语法 安装 prettier 及相关插件 yarn add prettier eslint-config-prettier eslint-plugin-prettier --dev安装 typescript 解析器、规则补充 …

Redis篇---第十一篇

系列文章目录 文章目录 系列文章目录前言一、说说Redis持久化机制二、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题三、热点数据和冷数据是什么前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…

gzip 压缩优化大 XML 响应的处理方法

当处理大型XML响应时&#xff0c;我们经常会面临内存限制和性能问题。 在处理这个问题时&#xff0c;我们可以使用Python的requests库和lxml库来解决。下面是解决方案的步骤&#xff1a; 1. 使用requests库发送HTTP请求获取XML响应。 2. 检查响应的Content-Encoding标头&…

这篇文章带你了解:如何一次性将Centos中Mysql的数据快速导出!!!

目录 一.数据库导出 1.首先创建文件以.sql结尾的文件 2.打开名mysq的解压目录&#xff0c;导出数据 3.然后在查看即可 4 需要的软件 MobaXterm 一.数据库导出 1.首先创建文件以.sql结尾的文件 通过 touch ssm.sql &#xff08;小编&#xff09; 实际上&#xff1a…

提升办公效率,畅享多功能办公笔记软件Notion for Mac

在现代办公环境中&#xff0c;高效的笔记软件对于提高工作效率至关重要。而Notion for Mac作为一款全能的办公笔记软件&#xff0c;将成为你事业成功的得力助手。 Notion for Mac以其多功能和灵活性而脱颖而出。无论你是需要记录会议笔记、管理项目任务、制定流程指南&#xf…

以makefile的方式在linux上编译代码(小白级别)

作者&#xff1a;爱塔居 作者简介&#xff1a;大四学生&#xff0c;分享自己的学习片段~ 目录 前言 一、创建主要文件 二、makefile 前言 多有不足&#xff0c;以供参考&#xff0c;欢迎大佬们指点。我是在虚拟机上执行的&#xff0c;应该都一样。我用的VirtualBox&#xff0c;…

第十篇 基于JSP 技术的网上购书系统——管理员后台管理主界面、订单管理、产品管理功能实现(网上商城、仿淘宝、当当、亚马逊)

目录 1.管理员后台管理——主界面 1.1功能说明 1.2界面设计 1.3处理流程 2.订单管理 2.1功能说明 2.2界面设计 2.3处理流程 2.4数据来源和算法 2.4.1数据来源 2.4.2查询条件 2.4.3表间关系 2.4.4相关sql实例 3.产品管理 3.1功能说明 3.2界面设计 3.3处理流程…

IF:9.0+期刊被踢除,11月SCI/SSCI期刊目录已更新!

【SciencePub学术】2023年11月20日&#xff0c;科睿唯安更新了Web of Science核心期刊目录。 继上次SCI期刊目录和SSCI期刊目录更新之后&#xff0c;本次11月更新共有5本期刊发生变动&#xff1a; • SCIE&#xff1a;有5本期刊不再被SCIE期刊目录收录&#xff0c;1本SCIE期刊更…

漆包线行业你了解多少?

今天就说说漆包线行业&#xff0c;漆包线是工业电机&#xff08;包括电动机和发电机&#xff09;、变压器、电工仪表、电力及电子元器件、电动工具、家用电器、汽车电器等用来绕制电磁线圈的主要材料。 漆包线上游是铜杆行业&#xff0c;下游是各种消费终端&#xff0c;主要是电…

微信小程序从零到发布上线,手把手教学(附精选源码250套)

零基础开发&#xff0c;如何上线小程序源码&#xff1f; 1、微信开发者工具安装 电脑端下载并安装“微信开发者工具” | 附下载地址&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 2、登录微信开发者工具 打开运行微信开发者工具…