vue3-echarts-lib

A Vue 3 ECharts component library with TypeScript support, providing easy-to-use chart components
1,130
Install
npm install vue3-echarts-lib
Latest Version:1.0.5
Vue:3
License:MIT
Last Updated:Jun 30, 2026
Links: npm
Maintainer: xgchxing

vue3-echarts-lib

基于 Vue 3 + TypeScript + ECharts 6 封装的图表组件库,按需引入,开箱即用。

特性

  • 🚀 Vue 3 + TypeScript:完整的类型支持
  • 📦 按需引入:基于 ECharts 的按需加载,减小打包体积
  • 🎨 丰富图表类型:折线图、柱状图、饼图、散点图、雷达图、仪表盘、漏斗图、热力图等
  • 🔧 灵活配置:支持全部 ECharts 原生配置项
  • 📐 自动响应:支持窗口大小变化自动 resize
  • 🎯 便捷工具函数:提供快速生成常用图表配置的工具方法
  • 💪 实例暴露:支持直接操作 ECharts 实例

安装

npm install vue3-echarts-lib echarts
# or
yarn add vue3-echarts-lib echarts
# or
pnpm add vue3-echarts-lib echarts

注意:echarts 和 vue 是 peerDependencies,需要自行安装。

快速开始

全局注册

import { createApp } from 'vue'
import Vue3EChartsLib from 'vue3-echarts-lib'

const app = createApp(App)
app.use(Vue3EChartsLib)
app.mount('#app')

按需引入

<template>
  <LineChart :option="option" height="400px" />
  <BarChart :option="barOption" height="400px" />
  <PieChart :option="pieOption" height="400px" />
</template>

<script setup lang="ts">
import { LineChart, BarChart, PieChart } from 'vue3-echarts-lib'
import { createLineOption, createBarOption, createPieOption } from 'vue3-echarts-lib'

// 方式一:使用工具函数快速生成配置
const option = createLineOption({
  categories: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
  series: [
    { name: 'PV', data: [820, 932, 901, 934, 1290, 1330, 1320], smooth: true },
    { name: 'UV', data: [620, 732, 701, 734, 1090, 1130, 1120], smooth: true, areaStyle: true },
  ],
})

const barOption = createBarOption({
  categories: ['类别A', '类别B', '类别C', '类别D', '类别E'],
  series: [
    { name: '2023', data: [320, 332, 301, 334, 390] },
    { name: '2024', data: [220, 182, 191, 234, 290] },
  ],
})

// 方式二:使用原生 ECharts 配置
const pieOption = createPieOption([
  { name: '直接访问', value: 335 },
  { name: '邮件营销', value: 310 },
  { name: '联盟广告', value: 234 },
  { name: '视频广告', value: 135 },
  { name: '搜索引擎', value: 1548 },
])
</script>

基础组件(完全自定义)

<template>
  <EChartsBase
    ref="chartRef"
    :option="option"
    height="400px"
    :auto-resize="true"
    :loading="loading"
    @chart-ready="onChartReady"
  />
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { EChartsBase } from 'vue3-echarts-lib'
import type { EChartsOption } from 'echarts'

const chartRef = ref()
const loading = ref(false)

const option: EChartsOption = {
  // ... 完整的 ECharts 配置
}

function onChartReady(instance: any) {
  console.log('图表初始化完成', instance)
}
</script>

API

EChartsBase Props

属性 类型 默认值 说明
option EChartsOption - ECharts 配置项(必填)
theme string | object null 主题配置
width string '100%' 图表宽度
height string '400px' 图表高度
autoResize boolean true 是否自动调整大小
loading boolean false 是否显示加载动画
loadingOptions object {} 加载动画配置
group string '' 图表分组
manualUpdate boolean false 是否手动控制更新
initOptions InitOptions {} 初始化选项
setOptionOpts SetOptionOpts {} setOption 选项

EChartsBase 实例方法

通过 ref 获取组件实例,可调用以下方法:

方法 说明
refresh() 手动刷新图表
getWidth() 获取图表宽度
getHeight() 获取图表高度
getDom() 获取图表 DOM 元素
clear() 清空图表
showLoading(type?, opts?) 显示加载动画
hideLoading() 隐藏加载动画
getDataURL(opts?) 导出图片 base64
dispatchAction(payload) 派发 ECharts Action
on(eventName, handler) 绑定事件
off(eventName, handler?) 解绑事件

工具函数

函数 说明
createLineOption(data, overrides?) 生成折线图配置
createBarOption(data, overrides?) 生成柱状图配置
createPieOption(data, overrides?) 生成饼图配置
createScatterOption(data, overrides?) 生成散点图配置
createRadarOption(data, overrides?) 生成雷达图配置
createGaugeOption(value, overrides?) 生成仪表盘配置
createFunnelOption(data, overrides?) 生成漏斗图配置
createHeatmapOption(data, overrides?) 生成热力图配置

useECharts Hook

import { useECharts } from 'vue3-echarts-lib'

const {
  chartInstance,   // ECharts 实例 ref
  initChart,       // 初始化图表
  setOption,       // 设置配置
  refresh,         // 刷新
  clear,           // 清空
  showLoading,     // 显示加载
  hideLoading,     // 隐藏加载
  getDataURL,      // 导出图片
  dispatchAction,  // 派发 Action
  on,              // 绑定事件
  off,             // 解绑事件
} = useECharts({...})

开发

# 安装依赖
npm install

# 开发模式(支持 playground 预览)
npm run dev

# 构建库
npm run build

# 发布到 npm
npm publish

License

MIT

Related Packages

@wick-charts/vue

Realtime, animated canvas charts for Vue: candlestick, line, bar, heatmap, pie a...

4,453 7
vue-echarts-workbench

A powerful Vue 3 component library for building ECharts dashboards

1,733
@autonomousminds-public/vue-better-bi

Vue 3 charting library built on ECharts with advanced formatting and theming

7,861
@indiminds/charts

Dependency-free canvas charts — line, bar (vertical/horizontal), combo, pie/donu...

1,124

Version History

Version Released Vue License
1.0.5 ^3.3.0 MIT
1.0.4 ^3.3.0 MIT
1.0.3 ^3.3.0 MIT
1.0.2 ^3.3.0 MIT
1.0.1 ^3.3.0 MIT