vue使用echarts基本原理以及报错提示undefined(reading init)的解决过程

 更新时间:2025年09月17日 09:01:21   作者:中芯12341  
Vue2使用ECharts时,因未全局注册或错误引入导致TypeError报错,解决方法为全局注册,正确获取DOM节点并设置宽高,通过生命周期或数据请求后调用getMain2方法初始化图表,option对象需根据实际数据配置

vue使用echarts及报错提示undefined(reading init)

在通常使用vue去编辑echarts图的时候,对于echarts初学者去论坛搜索echats操作实现柱状图、折线图、饼状图有很多博客都是基于一直怎么去“注册”echarts给出的逻辑代码,所以我们并不能一劳永逸的直接去cv复制我们需要的echarts,有的甚至不理解究竟为什么这样写。

今天我按照vue2的逻辑和结构给大家说一下echarts的使用以及报错的解决过程。

报错如下:

Error in mounted hook: "TypeError: Cannot read properties of undefined (reading init )"

1、全局注册echarts

// echarts

import * as echarts from 'echarts';

Vue.prototype.$echarts = echarts

这样注册就可以解决

Error in mounted hook: "TypeError: Cannot read properties of undefined (reading init )"  的问题

原因是有些博客很老当然使用的echarts的引入方式也根据版本在不断更新,所以我们并不能使用老的引入方式echarts(列入):(错误引入方式)import echarts from 'echarts'; 

2、编辑vue页面echarts

html部分,需要注意的是我们不管怎么去写echarts都不要忘记编辑width和height;

    <!-- 折线图 -->
    <div id="main2" class="echarts" style="width:100%;height:300px;"></div>

js部分 ,通过触发事件getmain2()来去调用echarts;

getmain2()可以挂在生命周期中或者你的项目请求数据请求完毕之后在进行这个方法引入就可以。

// echarts图
    getmain2() {
      let myChart = this.$echarts.init(document.getElementById("main2"));
      let option = {
        xAxis: {
          type: "category",
          name: '年、月',
          data: this.echarttable.months,
        },
        legend: {},
        toolbox: { //工具栏
          show: true,
          feature: {
            mark: { show: true },
            dataView: { show: true, readOnly: false },
            magicType: { show: true, type: ["line", "bar"] },
            // restore: { show: true },
            saveAsImage: { show: true }
          }
        },
        tooltip: {
          trigger: "axis" //显示当前列的所有信息
        },
        yAxis: {
          type: "value",
          name: '通过率%',
          axisLabel: {
            formatter: '{value} %', // 设置纵坐标显示百分比形式
          },
        },
        series: [
          //数据   五条折线数据  line 折线
          {
            name: '海口市公安局秀英分局(百分比)',
            data: this.echarttable.xiuying,
            type: "line"
          },
          {
            name: '海口市公安局龙华分局(百分比)',
            data: this.echarttable.longhua,
            type: "line"
          },
          {
            name: '海口市公安局美兰分局(百分比)',
            data: this.echarttable.meilan,
            type: "line"
          },
          {
            name: '海口市公安局琼山分局(百分比)',
            data: this.echarttable.qiongshan,
            type: "line"
          },
          {
            name: '海口市公安局开发区分局(百分比)',
            data: this.echarttable.kaifaqu,
            type: "line"
          }
        ]
      };
      // 注册echarts的option
      myChart.setOption(option);
    },

这里一定会萌新看不懂,这是怎么建立的关联的呢???

1、首先我们通过获取节点的方式获取到html部分的id 是main2

let myChart = this.$echarts.init(document.getElementById("main2"));

这里其实也就是我们使用其他博客的人项目中的代码后报错的地方,主要就是因为我们在main上的引入方式不对;

2、注册option

 // 注册echarts的option
      myChart.setOption(option);

其实option这个对象里面才是我们实现echarts的根本,通过上面的步骤我们已经把option和div标签深度绑定也就是说这里面填写的js都会在div里面显示我们要状态

3、编写option

let option = {
        内容在上面
}

这就是整个echarts的步骤了,关于他的功能上述代码

注意注意

可以直接cv,不过要更改横纵坐标的data换成已知的假数据才可以

相信如果这里你全部看完的话,你是一定会全面理解这个东西咋ivue上的使用方法,当然为了防止即拿主意,上面代码的data都是我们请求后端出的数据,所以想要看效果还是需要进行数组编辑的,不过这不是很难,也是为了排除一部分cv的吧,毕竟分享一篇博客不是用来cv的是学习和记录的过程,所以很感谢你能看到这里!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue纯前端使用exceljs导出excel文件的完整图文教程

    Vue纯前端使用exceljs导出excel文件的完整图文教程

    这篇文章将一步一步为大家详细介绍一下exceljs插件中的使用,以及如何使用exceljs导出excel文件,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-03-03
  • Vue弹窗组件的实现方法

    Vue弹窗组件的实现方法

    这篇文章主要为大家详细介绍了Vue弹窗组件的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • vue-next-admin项目使用cdn加速详细配置

    vue-next-admin项目使用cdn加速详细配置

    这篇文章主要为大家介绍了vue-next-admin项目使用cdn加速的详细配置,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Vue编译器optimize源码分析

    Vue编译器optimize源码分析

    这篇文章主要为大家介绍了Vue 编译器optimize源码分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 使用vue自定义如何实现Tree组件和拖拽功能

    使用vue自定义如何实现Tree组件和拖拽功能

    这篇文章主要介绍了使用vue自定义如何实现Tree组件和拖拽功能,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • vue中data和props的区别详解

    vue中data和props的区别详解

    这篇文章主要介绍了vue中data和props的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习吧
    2024-01-01
  • 基于vue 动态加载图片src的解决方法

    基于vue 动态加载图片src的解决方法

    下面小编就为大家分享一篇基于vue 动态加载图片src的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Vue.js开发中常见的错误分析与解决方案

    Vue.js开发中常见的错误分析与解决方案

    在现代前端开发中,Vue.js作为一款渐进式JavaScript框架,以其简洁的API和响应式数据绑定机制深受开发者喜爱,本文将以一组典型的Vue错误信息为切入点,深入分析问题根源,并提供详细的解决方案和最佳实践,需要的可以了解下
    2025-08-08
  • Vue实现6位数密码效果

    Vue实现6位数密码效果

    这篇文章主要为大家详细介绍了Vue实现6位数密码,优化iOS WebView卡顿,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • vue组件(全局,局部,动态加载组件)

    vue组件(全局,局部,动态加载组件)

    组件是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。这篇文章主要介绍了vue组件(全局,局部,动态加载组件),需要的朋友可以参考下
    2018-09-09

最新评论