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的是学习和记录的过程,所以很感谢你能看到这里!

总结

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

相关文章

  • Vue2.0用户权限控制解决方案

    Vue2.0用户权限控制解决方案

    这篇文章主要介绍了Vue2.0用户权限控制解决方法以及源码说明,一起学习下。
    2017-11-11
  • 深入理解Vue的数据响应式

    深入理解Vue的数据响应式

    Vue.js的核心包括一套“响应式系统”。“响应式”,是指当数据改变后,Vue会通知到使用该数据的代码。例如,视图渲染中使用了数据,数据改变后,视图也会自动更新。
    2021-05-05
  • vue项目如何刷新当前页面的方法

    vue项目如何刷新当前页面的方法

    这篇文章主要介绍了vue项目如何刷新当前页面的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • vue3.0封装轮播图组件的步骤

    vue3.0封装轮播图组件的步骤

    这篇文章主要介绍了vue3.0封装轮播图组件的步骤,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下
    2021-03-03
  • 超详细的5个Shell脚本实例分享(值得收藏)

    超详细的5个Shell脚本实例分享(值得收藏)

    这篇文章主要介绍了超详细的5个Shell脚本实例分享(值得收藏),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • element-ui直接在表格中点击单元格编辑

    element-ui直接在表格中点击单元格编辑

    最近通过在网上查找资料,自己整合研究了一个可以直接在表格中操作数据的基于element-ui的前端模板。可以让增改数据的操作显得方便一点,感兴趣的可以了解一下
    2021-12-12
  • Vue实现文件批量打包压缩下载

    Vue实现文件批量打包压缩下载

    这篇文章主要为大家详细介绍了如何利用Vue实现文件批量打包压缩下载功能,文中的实现步骤讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-07-07
  • Vue 2.0 侦听器 watch属性代码详解

    Vue 2.0 侦听器 watch属性代码详解

    这篇文章主要介绍了Vue 2.0 侦听器 watch属性代码详解,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-06-06
  • Vue之Mixins(混入)的使用方法

    Vue之Mixins(混入)的使用方法

    这篇文章主要介绍了Vue之Mixins(混入)的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • vue实现div单选多选功能

    vue实现div单选多选功能

    这篇文章主要为大家详细介绍了vue实现div单选多选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07

最新评论