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如何在data中引入图片的正确路径

    vue如何在data中引入图片的正确路径

    这篇文章主要介绍了vue如何在data中引入图片的正确路径,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 基于vue2.0的活动倒计时组件countdown(附源码下载)

    基于vue2.0的活动倒计时组件countdown(附源码下载)

    这是一款基于vue2.0的活动倒计时组件,可以使用服务端时间作为当前时间,在倒计时开始和结束时可以自定义回调函数。这篇文章主要介绍了基于vue2.0的活动倒计时组件countdown,需要的朋友可以参考下
    2018-10-10
  • Vuex实现数据增加和删除功能

    Vuex实现数据增加和删除功能

    今天小编就为大家分享一篇Vuex实现数据增加和删除功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Vue不能watch数组和对象变化解决方案

    Vue不能watch数组和对象变化解决方案

    这篇文章主要为大家介绍了Vue不能watch数组和对象变化解决方案示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • vue3中的对象时为proxy对象如何获取值(两种方式)

    vue3中的对象时为proxy对象如何获取值(两种方式)

    使用vue3.0时,因为底层是使用proxy进行代理的所以当我们打印一些值得时候是proxy代理之后的是Proxy<BR>对象,Proxy对象里边的[[Target]]才是真实的对象,那么如何获取这个值呢,下面下面给大家介绍两种方式,感兴趣的朋友一起看看吧
    2023-01-01
  • Vue3 Axios拦截器封装成request文件的示例详解

    Vue3 Axios拦截器封装成request文件的示例详解

    这篇文章主要介绍了Vue3 Axios拦截器封装成request文件,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • vue.js单页面应用实例的简单实现

    vue.js单页面应用实例的简单实现

    本篇文章主要介绍了vue.js单页面应用实例的简单实现,使用单页应用,没有页面切换,就没有白屏阻塞,可以大大提高 H5 的性能,达到接近原生的流畅体验。
    2017-04-04
  • vue 2.x 中axios 封装的get 和post方法

    vue 2.x 中axios 封装的get 和post方法

    本文通过实例代码给大家介绍了vue 2.x 中axios 封装的get 和post方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-02-02
  • 浅谈vue中组件绑定事件时是否加.native

    浅谈vue中组件绑定事件时是否加.native

    今天小编就为大家分享一篇浅谈vue中组件绑定事件时是否加.native,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue2实现手势密码功能

    vue2实现手势密码功能

    这篇文章主要为大家详细介绍了vue2实现手势密码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论