Vue3 中 echarts 不显示 tooltip 的问题

这篇具有很好参考价值的文章主要介绍了Vue3 中 echarts 不显示 tooltip 的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

近期在项目中需要用到图表类型的数据展示,就想到了用 echarts,项目用的是 Vue3,到官网看文档,一顿捣鼓之后在页面上能正常显示图表,本想着一样按套路去展示更多的图表,不出意外的话指定要出意外,这个时候发现图表的提示框 tooltip 没显示!!经过一番查证,发现原来 echarts 实例在 Vue3 中不能是一个响应式对象,否则提示框会显示不出来,那问题就简单了,只要不是响应式对象不就行了,开搞;

下面列举几个在项目中用到的解决方法,供参考,具体哪一种自行决定:

一、直接定义一个没有响应式的对象
<script setup lang="ts">
import * as echarts from 'echarts';
let instance = null
onMounted(() => {
    instance = echarts.init(echartsRef.value as HTMLElement)
    instance.setOption(option);
})
</script>

echarts tooltip不显示,echarts,前端,vue.js

二、用 shallowRef 来包装对象

如果想要像正常的写法去配置 echarts 也可以,我们用 shallowRef 来定义对象,shallowRef 不会将我们的对象进行深层次的响应式处理,具体看下图:
echarts tooltip不显示,echarts,前端,vue.js

<script setup lang="ts">
import { shallowRef } from 'vue'
import * as echarts from 'echarts';
let instance = shallowRef(null)
onMounted(() => {
    instance.value = echarts.init(echartsRef.value as HTMLElement)
    instance.value.setOption(option);
})
</script>

echarts tooltip不显示,echarts,前端,vue.js

三、markRaw 配合 reactive 使用

如果项目中是集中一个 state 管理,那这个时候可以搭配 markRaw 来使用,将 echarts 实例标记成一个不可被转为代理 的对象,具体代码如下:

<script setup lang="ts">
import { reactive, markRaw } from 'vue'
import * as echarts from 'echarts';
let state = reactive({
    instance: null,
})
onMounted(() => {
    state.instance = markRaw(echarts.init(echartsRef.value as HTMLElement))
    state.instance.setOption(option);
})
</script>

echarts tooltip不显示,echarts,前端,vue.js

以上便是解决在 Vue3 中 echarts 提示框不显示的问题,另外,笔者在开发的过程中发现了一个误区,一直以为 echarts 最后生成的是一个 canvas 元素,自然而然就以为 echarts 实例就是将 canvas 标签作为初始化时的 dom 元素,其实不然,官网的例子是以 div 作为初始化时的 dom元素,那如果以 canvas 标签进行初始化,有问题吗?没问题,照样可以显示,但是!如果你要显示 tooltip 就会发现它出不来,f12 看了下 dom 结构,发现提示框被添加到 canvas 里面去,canvas 标签里面的内容是不显示的,自然就不能看到提示框,解决办法只需要将 canvas 标签换为 div 标签即可;

echarts tooltip不显示,echarts,前端,vue.js

以上是笔者在做项目的过程发现的问题及解决方案,如果有疑问或者哪里不对,可以在评论区评论,多多指教~文章来源地址https://www.toymoban.com/news/detail-623180.html

到了这里,关于Vue3 中 echarts 不显示 tooltip 的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • echarts的横向柱状图文字省略,鼠标移入显示内容 vue3

    效果图 如果是在x轴上的,就在x轴上添加 triggerEvent: true, 如果是y轴就在y轴添加,我是在y轴上添加的 并且自定义的方法(我取名为 extension ) 然后我放在末尾引入的 数据格式

    2024年02月04日
    浏览(67)
  • Echarts遇到Vue3时遇到的问题

    将vue2的Echarts代码迁移到了vue3项目上,引发的问题 1. 点击图例legend时刻度轴偏移,图像不展示,以及报错  初始chart正常.图 点击图例后的chart和报错.图 2. 调用resize()不生效且报错 初始正常.图 修改屏幕尺寸调用resize及报错.图 Vue3使用了proxy,Echarts无法从中获取内部变量;所

    2024年02月10日
    浏览(35)
  • 【前端技术】Vue3 01:初识 Vue.js

    Vue 可以说是非常流行了,至少在国内是这样,他是个轻量级的 JavaScript 框架,非常适合构建大型和中小型的 Web 应用程序,如果想和前端打交道,应该绕不过这个框架吧。 目录 1 Vue.js 介绍 2  IDE 选择 2.1 vscode 2.2 WebStorm 2.3 Eclipse 3  创建 Vue 应用 3.1 本地脚手架创建 ① 安装

    2024年02月02日
    浏览(64)
  • 前端(四)——vue.js、vue、vue2、vue3

    😊博主:小猫娃来啦 😊文章核心: vue.js、vue、vue2、vue3从全局到局部 Vue.js是一款流行的JavaScript框架 vue,vue2,vue3都是vue.js的不同版本。 Vue:Vue.js的第一个版本,也称为Vue 1.x。它于2014年首次发布,并获得了广泛的应用和认可。 Vue2:Vue.js的第二个版本,也称为Vue 2.x。它在Vu

    2024年02月12日
    浏览(79)
  • 解决vue3集成echarts数据刷新后图表不刷新问题

    vue3 集成 echarts 最大的坑就是出现了,reactive 的数据 刷新了,但图表缺不会刷新,查了很多资料,试了很多方式都没效果,最后测试出来解决方法很简单: 核心代码: 附上 TSX 整个页面参考

    2024年02月13日
    浏览(54)
  • Vue3.0 vue.js.devtools无法显示Pinia调试工具

    之前的配置方式: 更新配置方式: 设置之后即可显示调试工具

    2024年03月11日
    浏览(55)
  • 解决vue3+echarts关于无法获取dom宽度和高度的问题

    近期写vue3项目,很多地方都用到了echarts,刚开始写的时候,发现图一直出不来,报错/报警内容一般有两项: Uncaught (in promise) Error: Initialize failed: invalid dom. vue3 [ECharts] Can’t get DOM width or height. 分别解释一下这俩报错 第一个报错是在初始化echarts的时候,没有找到对应的dom元素

    2024年02月14日
    浏览(38)
  • 前端HTML、CSS、JS、VUE3 汇总

    学习https://developer.mozilla.org/zh-CN/docs/Learn/CSS 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 使用VS Code运行前端代码 在VS Code上安装前端插件 正在更新中~ ✨ 提示:这里可以添加本文要记录的大概内容: 学习路线 知识定位 HTML基础 标签、表格、表单、

    2024年02月13日
    浏览(51)
  • vue3前端实现全屏显示,元素垂直填满页面

    1、 toggleFullscreen方法实现选定元素全屏展示 2、使用flex属性+ flex-direction 实现垂直布局填满整个页面

    2024年01月16日
    浏览(43)
  • vue+echarts 实现地图tooltip点击事件;toolTip数据动态渲染;同时鼠标滑过涟漪点时实现地图多区域联动

    最终做出来的效果是这样的: 最近做项目时,遇到这样的需求:         1、toolTip上的数据根据后台动态渲染         2、鼠标移入地图涟漪点时显示tootTip,点击toolTip上的文字,携带动态数据id进行路由跳转         3、鼠标移入地图涟漪点,与涟漪点相关的省份多区域联动

    2024年02月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包