当前位置: 首页 > news >正文

Vue3 对于echarts使用 v-show,导致显示不全,宽度仅100px,无法重新渲染的问题

参考链接:
解决Echarts图表使用v-show,显示不全,宽度仅100px的问题_echarts v-show图表不全-CSDN博客

Vue3 echarts v-show无法重新渲染的问题_v-show echarts不渲染-CSDN博客

原因不多赘述了,大概就是v-show 本身是结构已经存在,当数据发生变化时,结构并未重新渲染,所以会出现 echarts 图表未获取到最外层大盒子的宽度而显示一半的情况,就像下图(截的别人的图):

方法一:将 v-show 改成 v-if

但是我做的功能涉及频繁切换,以及更换成v-if后会导致图表的初始化找不到dom, 遂放弃。

方法二:使用nextTick(() => {})函数

首先需要从vue中引入:

<script lang="tsx" setup>import {nextTick} from 'vue';</script>

然后就是在需要切换v-show状态的地方:

<template>// 放echart图的div
<div v-show="isData" ref="chartRef" style="width:45%; height=400px"></div>// 切换按钮
<button @click="changeButton">切换按钮</button></template><script lang="tsx" setup>import {nextTick} from 'vue';const isData = ref(false);// 图表的渲染函数
const echartInit = () => {if(chartRef.value){const myEchart = echarts.init(chartRef.value);// 配置项const option = {// 此处省略};myEchart.setOption(option);// 千万别忘了要resizemyEchart.resize();        };
};const changeButton = () => {isData.value = true;if(isData.value){nextTick(() => {// 图表的渲染函数,重新强制让它渲染一次echartInit();})}}
</script>

重点:

1. 在切换 v-show 的变量时,使用nextTick(() => {})函数 重新调用一次渲染echarts的函数echartInit 

2.在渲染函数echartInit 里面要最后写一句resize !

http://www.lryc.cn/news/497895.html

相关文章:

  • C++实现俄罗斯方块
  • 鸿蒙分享:添加模块,修改app名称图标
  • 扫描IP段内的使用的IP
  • 【专题】虚拟存储器
  • Python之爬虫入门--示例(2)
  • 5G CPE终端功能及性能评测(四)
  • 人工智能驱动的骗局会模仿熟悉的声音
  • 电子病历静态数据脱敏路径探索
  • 混合云策略在安全领域受到青睐
  • Echarts使用平面方法绘制三维立体柱状图表
  • java-判断语句
  • 11.14【JAVA EXP3】【DEBUG】
  • UE5 和 UE4 中常用的控制台命令总结
  • MR30分布式IO模块赋能喷水织机
  • C++中的封装性
  • PyTorch 深度学习框架简介:灵活、高效的 AI 开发工具
  • leetcode-22.括号生成
  • devops-Dockerfile+Jenkinsfile方式部署Java前后端应用
  • 【Apache Paimon】-- 4 -- Flink 消费 kafka 数据,然后写入 paimon
  • 【成功解决】:VS2019(Visual Studio 2019)遇到E2870问题:此配置中不支持 128 位浮点类型
  • 什么是TCP的三次握手?
  • SQL教程(2):SQL基础语法及用途
  • 在Ubuntu22.04 jammy下用qemu模型riscv32环境装鸿蒙(待续)
  • C++:基本-union是没有构造函数和析构函数的
  • 报错 JSON.parse: expected property name or ‘}‘,JSON数据中对象的key值不为字符串
  • LeetCode 热题 100_旋转图像(20_48_中等_C++)(原地旋转;翻转)
  • mysql查询所有用户及删除用户
  • Vue 鼠标滚轮缩放图片的实现
  • 全景图 与 6面图转换
  • 深入浅出:PHP 文件操作