Vue3中使用echarts的简单七个步骤(易懂,附紧急避坑)

 更新时间:2023年01月05日 10:47:53   作者:满脑子技术的前端工程师  
近期在做一个vue3的项目,里面有个图表需求,因公司之前使用第三方封装的图表缺少文档,就去看了echars的官网文档,引入原生echars来实现,下面这篇文章主要给大家介绍了关于Vue3中使用echarts的简单七个步骤,需要的朋友可以参考下

前言

提示:vue3中使用echars的七步骤如下:其中第5-7的步骤都写在Dom渲染完成的生命周期中:可以是 onMounted() 也可以是 Mounted()

最终效果展示:

一、Echars官网地址

下面的三个地址可以方便我们进行官网的直接跳转(省时省力)主要是为了方便xdm

二、Echars的创建步骤(Vue3中使用Vue2的写法)

这里是直接封装的组件进行使用的

只需传入数据就可以一劳永逸大大滴方便

第一步:安装echars

在终端中执行:npm install echarts --save

 npm install echarts --save

如下图所示:

在终端中执行:npm install echarts --save

第二步:导入echarts

在文件中导入echarts
import * as echarts from “echarts”;

import * as echarts from "echarts";

第三步:创建Dom结构

创建Dom结构(并且设定div的大小)用来展示echars图表

<template>
  <div ref="EcharRef" style="width: 300px; height: 300px"></div>
</template>

如下图所示:

第四步:ref获取创建的Dom结构

通过ref获取到创建的Dom结构 (!!!!!Dom加载完成的生命周期!!!!!)

  const main = this.$refs.EcharRef;

如下图所示

第五步:初始化图表

init()初始化图表(到这里基础的引入工作已经完成了)

  const myChars = echarts.init(main);

如下图所示

第六步:配置对应的option数据

需要配置对应的option数据可以采用对象拼接的数据

如下图所示:

第七步:setOption方法进行数据的设置

通过setOption方法进行数据的设置

   myChars.setOption(this.options);

如下图所示

三、完整代码如下(包含父组件中的传值,Vue3中Vue2的分写法)

父组件(echars父组件传值格式)

      <EcharsCommon :seriesOpeion="{series:[
    {
      name: 'Email',
      type: 'line',
      stack: 'Total',
      data: [120, 132, 101, 134, 90, 230, 210]
    },
    {
      name: 'Video Ads',
      type: 'line',
      stack: 'Total',
      data: [150, 232, 201, 154, 190, 330, 410]
    },
    {
      name: 'Search Engine',
      type: 'line',
      stack: 'Total',
      data: [820, 932, 901, 934, 1290, 1330, 1320]
    }
  ]}"></EcharsCommon>

子组件(echars子组件封装)

这个是定义的公用组件Echars(子组件)

<template>
  <div ref="EcharRef" style="width: 300px; height: 300px"></div>
</template>

<script lang="ts">
import { defineComponent } from "vue";
//第一步:先在官网中的指令进行安装
// npm install echarts --save
//第二步:导入echarts
import * as echarts from "echarts";

export default defineComponent({
  //第三步:创建Dom结构(并且设定div的大小)用来echars图表
  //第四步:通过ref获取到创建的Dom结构 (!!!!!Dom加载完成的生命周期!!!!!)
  mounted() {
    const main = this.$refs.EcharRef;
    //第五步:初始化咱们的图表内容(到这里基础的引入工作已经完成了)
    const myChars = echarts.init(main);
    //第六步:需要配置对应的option数据可以采用对象拼接的数据
    //第七步:通过setOption进行数据的设置
    myChars.setOption(this.options);
  },
  //父组件传过来的数据
  props: {
    seriesOpeion: [Array, Object],
  },
  //使用计算属性进行合并
  computed: {
    options() {
      return Object.assign(this.baseOption, this.seriesOpeion);
    },
  },
  data() {
    return {
      /* 一些配置项的设置内容 */
      baseOption: {
        //标题
        titile: {
          text: "测试折线图",
        },
        //legend图例的设置 plain是横向排,scroll是垂直排(具体属性请对照官方文档)
        legend: {
          type: "plain",
        },
        //X轴设置
        xAxis: {
          type: "category",
          name: "日期",
          data: [1, 2, 3, 4, 5, 6, 7],
        },
        //y轴数据
        yAxis: {
          type: "value",
          name: "数量",
        },
        //鼠标悬浮在图表上的tip提示(这里的trigger属性需要重视:axis是折线等,itme是扇形等)
        tooltip: {
          trigger: "axis",
        },
        //工具栏的对应设置,详细内容可以阅读文档
        toolbox: {
          feature: {},
        },
      },
    };
  },
  
});
</script>

四、Vue3的写法完整写法如下(setup篇)

展示效果如下

第一种数据结构(入门)

第二种数据结构展示图(复杂,可按需配置)

代码图解,如下所示:

完整的使用代码如下:

<script setup lang="ts">
//1.导入echarts
import * as echarts from 'echarts';
import { Ref, ref, onMounted } from 'vue'
//2.事先外部声明的一些图表结构(如果是使用公共组件的话,这里可以用函数进行封装+对数据进行处理的函数)
import {options,option} from './dataScource'

//3.获取定义的Dom模板
const echarsDom:Ref<HTMLElement|any> = ref(null)

//4.在组件挂载的生命周期中获取到DOm节点
onMounted(() => {
    //5.创建echarts初始化对象
    const myEcharts = echarts.init(echarsDom.value);
    //6.校验表结构是否存在,存在就渲染
    options && myEcharts.setOption(option);
})

</script> 

<template>

    <!-- 创建一个div去显示echarts -->
    <div ref="echarsDom" style="width: 800px;height: 600px;"></div>

</template>

总结

到此这篇关于Vue3中使用echarts的简单七个步骤的文章就介绍到这了,更多相关Vue3使用echarts内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中关于this.refs为空出现原因及分析

    vue中关于this.refs为空出现原因及分析

    这篇文章主要介绍了vue中关于this.refs为空出现原因及分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 使用vue3+vite导入图片路径错乱问题排查及解决

    使用vue3+vite导入图片路径错乱问题排查及解决

    使用vue3+vite开发的时候,导入svg图片时,同一个文件夹下的文件,其中一个路径正常解析,另一个不行,更改文件名之后,该图片文件就可以正常解析了,本文给大家介绍了使用vue3+vite导入图片路径错乱问题排查及解决,需要的朋友可以参考下
    2024-03-03
  • vue+element UI实现树形表格

    vue+element UI实现树形表格

    这篇文章主要为大家详细介绍了vue+element UI实现树形表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Vue 路由切换时页面内容没有重新加载的解决方法

    Vue 路由切换时页面内容没有重新加载的解决方法

    今天小编就为大家分享一篇Vue 路由切换时页面内容没有重新加载的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue生成二维码QR Code的简单实现方法示例

    vue生成二维码QR Code的简单实现方法示例

    这篇文章主要为大家介绍了vue生成二维码QR Code的实现示例详情,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • vue2.x版本中computed和watch的使用及关联和区别

    vue2.x版本中computed和watch的使用及关联和区别

    这篇文章主要介绍了vue2.x版本中computed和watch的使用及关联和区别,文章围绕主题展开详细的内容介绍,需要的小伙伴可以参考一下
    2022-07-07
  • 56个实用的JavaScript 工具函数助你提升开发效率

    56个实用的JavaScript 工具函数助你提升开发效率

    今天来看看JavaScript中的一些实用的工具函数,希望能帮助你提高开发效率!需要的朋友可以参考下面文章的具体内容
    2021-10-10
  • vuex存储数据的几种方法实例详解

    vuex存储数据的几种方法实例详解

    在浏览网页时我们有些时候需要记住一些用户选择的信息,比如登陆时我们如果选择了记住密码,那么我们下次进入该网页时就会有你上次的登陆信息,下面这篇文章主要给大家介绍了关于vuex存储数据的几种方法,需要的朋友可以参考下
    2022-10-10
  • Vue3 如何通过虚拟DOM更新页面详解

    Vue3 如何通过虚拟DOM更新页面详解

    这篇文章主要为大家介绍了Vue3 如何通过虚拟DOM更新页面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • vue3 微信扫码登录及获取个人信息实现的三种方法

    vue3 微信扫码登录及获取个人信息实现的三种方法

    本文主要介绍了vue3 微信扫码登录及获取个人信息实现的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03

最新评论