当前位置:首页 > VUE

vue图表表格实现

2026-02-24 16:33:07VUE

Vue 图表与表格实现方案

图表实现(基于 ECharts)

安装 ECharts 依赖:

npm install echarts --save

基础折线图组件示例:

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

<script>
import * as echarts from 'echarts';
export default {
  mounted() {
    const chart = echarts.init(this.$refs.chartDom);
    chart.setOption({
      xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
      },
      yAxis: { type: 'value' },
      series: [{
        data: [820, 932, 901, 934, 1290],
        type: 'line'
      }]
    });
  }
}
</script>

响应式处理方案:

window.addEventListener('resize', () => {
  chart.resize();
});

表格实现(基于 Element UI)

安装 Element UI:

npm install element-ui --save

基础表格组件示例:

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区'
      },{
        date: '2016-05-04',
        name: '李小狼',
        address: '北京市海淀区'
      }]
    }
  }
}
</script>

高级功能实现

表格分页控制:

vue图表表格实现

<el-pagination
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page="currentPage"
  :page-sizes="[10, 20, 50]"
  :page-size="pageSize"
  layout="total, sizes, prev, pager, next"
  :total="total">
</el-pagination>

图表异步数据加载:

async fetchChartData() {
  const res = await axios.get('/api/chart-data');
  this.chart.setOption({
    series: [{
      data: res.data
    }]
  });
}

性能优化建议

表格大数据量处理:

  • 使用虚拟滚动(如 vue-virtual-scroller)
  • 实现分页加载
  • 固定列宽减少重排

图表优化方案:

vue图表表格实现

  • 按需导入 ECharts 模块
  • 使用 dataset 管理数据
  • 适当降低动画效果

移动端适配方案

响应式表格处理:

@media screen and (max-width: 768px) {
  .el-table__body-wrapper {
    overflow-x: auto;
  }
}

触摸事件支持:

chart.on('click', params => {
  console.log(params.data);
});

常见问题解决方案

图表不显示排查:

  • 检查 DOM 容器宽度高度是否为 0
  • 验证数据格式是否符合要求
  • 确认 ECharts 实例化时机

表格渲染异常处理:

  • 检查数据响应性(Vue.set)
  • 验证 column 定义是否完整
  • 排查样式冲突问题

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

相关文章

css表格制作

css表格制作

CSS表格制作方法 使用CSS创建表格可以通过多种方式实现,以下是常见的几种方法: 使用HTML原生表格标签结合CSS样式 <table class="styled-table">…

用vue实现表格

用vue实现表格

Vue 表格实现方法 基础表格实现 使用 Vue 的 v-for 指令可以轻松渲染表格数据。准备一个数据数组,在模板中用 v-for 循环渲染。 <template> <tab…

vue实现表格编辑

vue实现表格编辑

Vue 实现表格编辑的方法 在 Vue 中实现表格编辑功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定数据 通过 v-model 绑定表格数据,结合 v-for 动态渲染…

vue实现表格报表

vue实现表格报表

Vue 实现表格报表的方法 使用 Element UI 的表格组件 Element UI 提供了功能丰富的表格组件,适合快速实现报表功能。安装 Element UI 后,可以直接使用 el-table…

vue实现树形表格

vue实现树形表格

实现树形表格的基本思路 树形表格的实现通常需要递归组件来展示层级数据,并通过展开/折叠功能控制子节点的显示。Vue的组件递归特性非常适合处理这种嵌套结构。 数据结构的准备 树形表格的数据通常是一个嵌…

vue实现复杂表格

vue实现复杂表格

Vue 实现复杂表格的方法 在 Vue 中实现复杂表格通常需要结合组件化、动态渲染和数据处理的能力。以下是几种常见的方法和实现技巧: 使用 Element UI 或 Ant Design Vue 的…