Vue使用Echarts的三种实现方式

 更新时间:2026年04月23日 09:19:29   作者:伟笑  
文章介绍了三种在Vue项目中使用ECharts的方法:直接使用原始方法、使用vue-echarts和v-chhart,详细描述了每种方法的步骤和优势,帮助开发者在Vue项目中更方便地地使用ECharts

一、原始方法直接使用

1、安装ECharts:

npm install echarts --save

2、创建一个Vue公共组件 EChart.vue:

<template>
  <div :style="{width: '100%', height: '300px'}" ref="chart"></div>
</template>
<script>
import echarts from 'echarts'
export default {
  name: 'EChart',
  props: {
    option: {
      type: Object,
      required: true
    }
  },
  data() {
    return {
      chartInstance: null
    }
  },
  watch: {
    option: {
      handler(newOption) {
        if (this.chartInstance) {
          this.chartInstance.setOption(newOption);
        }
      },
      deep: true
    }
  },
  mounted() {
    this.chartInstance = echarts.init(this.$refs.chart);
    this.chartInstance.setOption(this.option);
  },
  beforeDestroy() {
    if (this.chartInstance) {
      this.chartInstance.dispose();
    }
  }
}
</script>

3、使用EChart.vue组件

<template>
  <div>
    <e-chart :option="chartOption"></e-chart>
  </div>
</template>
 
<script>
import EChart from './EChart.vue'
 
export default {
  components: {
    EChart
  },
  data() {
    return {
      chartOption: {
        // ECharts 配置项
      }
    }
  }
}
</script>

这个例子中,EChart.vue组件通过props接收ECharts的配置项option,并在组件的mounted生命周期钩子中初始化ECharts实例,在watch中监控option的变化,并更新图表。

在父组件中,你可以通过传递不同的chartOption来更新图表。

这样做的好处是,你可以在多个地方复用这个图表组件,并通过传递不同的配置来定制图表的显示。同时,组件内部处理了ECharts实例的创建和销毁,使得使用更加简洁和高效。

二、使用vue-echarts

vue-echarts (https://github.com/ecomfe/vue-echarts)是ECharts 的 Vue.js 组件,基于 ECharts v4.1.0+ 开发,依赖 Vue.js v2.2.6+,意思就是可以直接把echarts实例当中vue中的组件来使用,不用每次都获取dom、挂在dom,轻松使用echarts的所用功能。

npm install echarts vue-echart

main.js中引入

import ECharts from 'vue-echarts'
// 注册全局的组件
Vue.component('vChart', ECharts)

vue中使用,直接添加options 数据即可。

<template>
  <div class="page">
    <el-card>
      <!-- 柱状图+折线图 -->
      <vChart class="chart3" :options="barOptions" />
    </el-card>
  </div>
</template>

<script>
export default {
  data() {
    return {
      barOptions: {
        color: ["#5094FF", "#64DAAC", "#FAC84A"],
        grid: {
          top: "15%",
          bottom: "20%",
          right: "5%",
          left: "5%"
        },
        tooltip: {},
        legend: {
          data: ["合格数", "超标数", "合格率", "超标率"],
          top: "0"
        },
        xAxis: {
          type: "category",
          data: ["04-13", "04-14", "04-15", "04-16", "04-17", "04-18", "04-19"]
        },
        yAxis: {
          // name: '合格率(%)',
          // nameLocation: 'middle',
          type: "value"
          // nameTextStyle: {
          //   fontSize: '0.072917rem',
          //   color: '#999999'
          // }
        },
        series: [
          {
            name: "合格数",
            type: "bar",
            barWidth: "15%",
            barGap: "5%",
            data: [20, 232, 441, 654, 770, 530, 410]
          },
          {
            name: "超标数",
            type: "bar",
            barWidth: "15%",
            data: [120, 482, 791, 834, 590, 930, 710]
          },
          {
            name: "合格率",
            type: "line",
            data: [420, 332, 291, 654, 590, 330, 810]
          },
          {
            name: "超标率",
            type: "line",
            data: [120, 232, 391, 854, 590, 730, 410]
          }
        ]
      }
    };
  }
};
</script>

三、使用v-charts

v-charts(https://v-charts.js.org/#/) 是基于vue2二次封装的图表组件库,功能没有echarts多 但也够用了,官网很详细,这里用一个官网例子说明问题

<template>
  <ve-histogram :data="chartData" :settings="chartSettings"></ve-histogram>
</template>

<script>
  export default {
    data () {
      this.chartSettings = {
        showLine: ['下单用户']
      }
      return {
        chartData: {
          columns: ['日期', '访问用户', '下单用户', '下单率'],
          rows: [
            { '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
            { '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
            { '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
            { '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
            { '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
            { '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
          ]
        }
      }
    }
  }
</script>

总结

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

相关文章

  • vuex中五大属性和使用说明(包括辅助函数)

    vuex中五大属性和使用说明(包括辅助函数)

    这篇文章主要介绍了vuex中五大属性和使用说明(包括辅助函数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 使用vue实现pdf预览功能的方法

    使用vue实现pdf预览功能的方法

    许多朋友想要材料上传之后点击预览实现在浏览器上预览的效果,所以本文将给大家介绍如何使用vue实现pdf预览功能,文中有实现代码,有需要的朋友可以参考阅读下
    2023-08-08
  • 基于Vue中使用节流Lodash throttle详解

    基于Vue中使用节流Lodash throttle详解

    今天小编就为大家分享一篇基于Vue中使用节流Lodash throttle详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Vue 如何使用props、emit实现自定义双向绑定的实现

    Vue 如何使用props、emit实现自定义双向绑定的实现

    这篇文章主要介绍了Vue 如何使用props、emit实现自定义双向绑定的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • axios接口管理优化操作详解

    axios接口管理优化操作详解

    这篇文章主要为大家介绍了axios接口管理优化操作详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • vue-router路由传参的两种方式详解(params和query)

    vue-router路由传参的两种方式详解(params和query)

    vue-router 是一个基于vue.js的路由器,它提供了强大的路由功能,能够帮助开发者快速构建单页应用程序,本文将详细介绍 vue-router 路由传参的方法,包括路由传参的概念、路由传参的方法、路由传参的应用场景等,需要的朋友可以参考下
    2024-12-12
  • Vue 前端导出后端返回的excel文件方式

    Vue 前端导出后端返回的excel文件方式

    这篇文章主要介绍了Vue 前端导出后端返回的excel文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue列表渲染v-for用法完全解析

    Vue列表渲染v-for用法完全解析

    v-for是Vue.js中用于循环渲染元素的指令,非常强大但也需要遵循一些最佳实践,下面这篇文章主要介绍了Vue列表渲染v-for用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-03-03
  • Vue使用provide各种传值后inject获取undefined的问题及解决

    Vue使用provide各种传值后inject获取undefined的问题及解决

    这篇文章主要介绍了Vue使用provide各种传值后inject获取undefined的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue和SpringBoot之间传递时间的方法实现

    Vue和SpringBoot之间传递时间的方法实现

    本文主要介绍了Vue和SpringBoot之间传递时间的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论