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

Vue3引用echart5 报错解决

一、TypeError: Cannot read properties of undefined (reading 'type')

原因:由于把echart实例绑定到了一个响应式的变量上

解决方案

【1】使用markRaw 把响应式变量定为非响应式变量

import { markRaw  } from 'vue';
export default {data() {return {chartContainerDom: null as any,chartObject: {} as echarts.EChartsType,}},mounted() {this.chartContainerDom = this.$refs.lineChart;// 基于DOM容器创建echarts实例this.chartObject = markRaw(echarts.init(this.chartContainerDom));// 定义配置项和数据const option = {// title: { text: this.config.title },xAxis: {},yAxis: {},series: [{ type: 'line', data: [5, 20, 36, 10, 10] }],};// 设置配置项和数据到echarts实例上this.chartObject.setOption(option);window.addEventListener('resize', ()=>{this.resizeChart();})},unmounted() {window.removeEventListener('resize', this.resizeChart)},methods: {resizeChart() {let { clientHeight: height, clientWidth: width} =  this.chartContainerDom;console.log(this.chartObject)this.chartObject.resize({ width, height })}}
}

注:

【1】toRaw:
作用:将一个由reactive生成的响应式对象转为普通对象。

使用场景:

用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。

【2】markRaw:
作用:标记一个对象,使其永远不会再成为响应式对象。

应用场景:

有些值不应被设置为响应式的,例如复杂的第三方类库等。

当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能

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

相关文章:

  • 浅析HTTP协议
  • etcd未授权到控制k8s集群
  • 制作一个简单的HTML个人网站
  • 头歌C语言字符数组
  • 【mongoDB】文档 CRUD
  • 每日一题——LeetCode1337.矩阵中战斗力最弱的K行
  • docker指令存档
  • Pandas ------ 向 Excel 文件中写入含有 multi-index 和 Multi-column 表头的数据
  • ChatGPT 和文心一言 | 两大AI助手哪个更胜一筹
  • flink学习之窗口处理函数
  • Python 基于pytorch从头写GPT模型;实现gpt实战
  • 2023年NOC大赛(学而思赛道)创意编程Python初中组决赛真题
  • 头歌C++之Switch控制语句编程实训
  • CNN卷积理解
  • DataKit迁移MySQL到openGauss
  • Dockerfile里ADD * 保留原来的目录结构
  • C++ 利用容器适配器,仿函数实现栈,队列,优先级队列(堆),反向迭代器,deque的介绍与底层
  • C语言实战系列二:简单超市收银系统
  • coding推送代码Jenkins自动构建部署
  • Kettle-Docker部署+Sqlserver数据同步Mysql+Start定时任务
  • 《微信小程序开发从入门到实战》学习九十三
  • Java服务端使用freemarker+wkhtmltoimage生成Echart图片
  • 一款颜值与实力并存的翻页时钟(免费)
  • Objective-C方法的声明实现及调用
  • 第十四届蓝桥杯国赛 C++ B 组 C 题——班级活动(AC)
  • GraphQL的力量:简化复杂数据查询
  • python环境安装sklearn及报错解决
  • log4j:WARN Please initialize the log4j system properly的解决办法
  • 虹科分享丨汽车技术的未来:Netropy如何测试和确保汽车以太网的性能
  • 代码CE:reference to ‘XX‘ is ambiguous