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

VUE3中使用echarts,配置都正确,不出现tooltip

在vue3中使用echarts,出现个别问题,需要注意echars对象的定义,不能使用reactive或者ref定义响应式变量,要使用shallowRef ;

shallowRef 是 Vue 3 提供的一个 API,它创建一个响应式引用(ref),但只对引用的顶层属性进行响应式处理(不会深度递归转换对象内部属性)。这在处理大型对象或不需要深度响应式的场景下可以提高性能。

当在 Vue 3 中使用 ECharts 时,shallowRef 可以用来优化图表实例的存储:

import { shallowRef, onMounted, onBeforeUnmount } from 'vue'
import * as echarts from 'echarts'export default {setup() {// 使用shallowRef存储图表实例const chartInstance = shallowRef(null)const chartContainer = shallowRef(null)onMounted(() => {// 初始化图表chartInstance.value = echarts.init(chartContainer.value)// 设置图表选项chartInstance.value.setOption({tooltip: {show: true,trigger: 'item'},series: [{type: 'pie',data: [{ value: 1048, name: 'Search' },{ value: 735, name: 'Direct' }]}]})})onBeforeUnmount(() => {// 组件卸载时销毁图表chartInstance.value?.dispose()})return { chartContainer }}
}

为什么在 ECharts 中使用 shallowRef
性能优化:

ECharts 实例本身是一个复杂对象,不需要深度响应式

shallowRef 避免了不必要的深度响应式转换

内存效率:

减少 Vue 响应式系统的内存开销

避免意外行为:

ECharts 实例有自己内部的状态管理,深度响应式可能导致意外行为

相关文章:

  • 1.1 java开发的准备工作
  • 运维案例:让服务器稳定运行,守护业务不掉线!
  • AI大模型和人脑的区别
  • 流程架构是什么?为什么要构建流程架构,以及如何构建流程结构?
  • Android Gradle Plugin (AGP) 和 Gradle 的關係
  • Java_day25-29
  • 大模型在代码安全检测中的应用
  • python函数与模块
  • HCIP-H12-821 核心知识梳理 (6)
  • 《浔川AI翻译v6.1.0问题已修复公告》
  • redis client.ttl(key)
  • 04-Java入门-Path环境变量的配置
  • lerna 8.x 详细教程
  • 【AI News | 20250423】每日AI进展
  • LLama Factory从入门到放弃
  • 非关系型数据库 八股文 Redis相关 缓存雪崩 击穿 穿透
  • java Nacos
  • 数据结构手撕--【栈和队列】
  • 初识分布式事务原理
  • 【敏矽微ME32G030系列】介绍、环境搭建、工程测试
  • A股三大股指涨跌互现,工农中三大行股价创新高
  • “雷公”起诉人贩子王浩文案开庭:庭审前手写道歉信,庭审中不承认拐走川川
  • 叶迪奇任陆金所控股董事长,赵容奭继续担任CEO
  • 郑庆华任同济大学党委书记
  • 北京市交通委通报顺平路潮白河大桥事故直接原因
  • 中国和阿塞拜疆签署互免签证协定