当前位置:首页 > VUE

vue实现exs图表

2026-02-18 18:09:20VUE

Vue 实现 ECharts 图表

在 Vue 项目中集成 ECharts 图表可以通过以下方式完成:

安装 ECharts 依赖 通过 npm 或 yarn 安装 ECharts:

npm install echarts --save

全局引入或按需引入 全局引入方式(适用于频繁使用 ECharts 的组件):

import * as echarts from 'echarts';
Vue.prototype.$echarts = echarts;

按需引入方式(推荐,减少打包体积):

import * as echarts from 'echarts/lib/echarts';
import 'echarts/lib/chart/bar'; // 引入柱状图
import 'echarts/lib/component/tooltip'; // 引入提示框组件

在 Vue 组件中使用 在组件的 mounted 钩子中初始化图表:

mounted() {
  this.initChart();
},
methods: {
  initChart() {
    const chartDom = this.$refs.chart;
    const myChart = echarts.init(chartDom);
    const option = {
      title: { text: '示例图表' },
      tooltip: {},
      xAxis: { data: ['A', 'B', 'C', 'D'] },
      yAxis: {},
      series: [{ type: 'bar', data: [10, 20, 30, 40] }]
    };
    myChart.setOption(option);
  }
}

模板中定义容器 确保模板中有用于渲染图表的 DOM 元素:

<template>
  <div ref="chart" style="width: 600px; height: 400px;"></div>
</template>

响应式调整图表大小

监听窗口变化并重新调整图表大小:

window.addEventListener('resize', () => {
  if (this.myChart) {
    this.myChart.resize();
  }
});

销毁图表实例

在组件销毁时清理资源:

beforeDestroy() {
  if (this.myChart) {
    this.myChart.dispose();
    this.myChart = null;
  }
}

使用 Vue-ECharts 封装组件

如需更高复用性,可封装为通用组件:

vue实现exs图表

// EChartsWrapper.vue
<template>
  <div ref="chart" :style="{ width, height }"></div>
</template>

<script>
export default {
  props: {
    option: { type: Object, required: true },
    width: { type: String, default: '100%' },
    height: { type: String, default: '400px' }
  },
  watch: {
    option: {
      handler(newVal) {
        this.updateChart(newVal);
      },
      deep: true
    }
  },
  mounted() {
    this.initChart();
  },
  methods: {
    initChart() {
      this.myChart = echarts.init(this.$refs.chart);
      this.myChart.setOption(this.option);
    },
    updateChart(option) {
      this.myChart.setOption(option);
    }
  },
  beforeDestroy() {
    this.myChart.dispose();
  }
};
</script>

注意事项

  • 确保 DOM 容器在初始化时已渲染完成。
  • 复杂图表建议使用 dataset 管理数据。
  • 大量数据渲染时启用动画优化性能:
    option.animation = false;

标签: 图表vue
分享给朋友:

相关文章

vue实现文章锚点定位

vue实现文章锚点定位

实现文章锚点定位的方法 在Vue中实现文章锚点定位可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML锚点 通过HTML的id属性和<a>标签的href属性实现锚点跳转。在Vu…

vue实现a4打印模板

vue实现a4打印模板

使用Vue实现A4打印模板 在Vue中实现A4打印模板需要结合CSS的打印样式和Vue的模板渲染能力。以下是具体实现方法: 设置A4纸张尺寸 在CSS中定义A4纸张的标准尺寸(210mm × 297…

vue实现模块

vue实现模块

Vue 实现模块化的方法 Vue 支持多种模块化开发方式,可以根据项目需求选择适合的方案。 使用单文件组件(SFC) 单文件组件是 Vue 最常用的模块化方式,将模板、脚本和样式封装在一个 .vue…

vue实现浮标

vue实现浮标

Vue 实现浮动按钮(浮标) 使用 Vue 实现浮动按钮可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 定位和 Vue 组件 创建 Vue 组件并配合 CSS 固定定位实现浮动按钮:…

vue实现curd

vue实现curd

Vue实现CRUD操作 初始化Vue项目 使用Vue CLI创建新项目,安装必要依赖如axios用于HTTP请求 vue create crud-demo cd crud-demo npm inst…

vue实现注册

vue实现注册

Vue 实现注册功能 注册功能通常涉及前端表单、数据验证、与后端 API 的交互等步骤。以下是一个完整的 Vue 实现注册功能的方案。 创建注册表单 使用 Vue 的模板语法创建注册表单,包含用户名…