当前位置:首页 > 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>

高级功能实现

表格分页控制:

<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)
  • 实现分页加载
  • 固定列宽减少重排

图表优化方案:

  • 按需导入 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 定义是否完整
  • 排查样式冲突问题

vue图表表格实现

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

相关文章

vue实现简单表格

vue实现简单表格

Vue 实现简单表格的方法 使用原生 HTML 表格 在 Vue 模板中可以直接使用 HTML 原生表格标签,通过 v-for 动态渲染数据: <template> <tabl…

vue实现表格多行修改

vue实现表格多行修改

实现表格多行修改的方法 数据绑定与表格渲染 使用v-model绑定表格数据到Vue实例的data属性。通过v-for循环渲染表格行,并为每行数据添加编辑状态标识。 <template>…

css表格制作

css表格制作

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

vue表格实现单选

vue表格实现单选

实现 Vue 表格单选功能 使用 v-model 绑定选中状态 在表格的每一行添加单选按钮或点击行触发选中,通过 v-model 绑定一个变量存储当前选中行的唯一标识(如 id)。 示例代码: &…

vue表格动态实现

vue表格动态实现

Vue 表格动态实现方法 动态表格的实现通常涉及数据绑定、列配置动态化以及交互功能的灵活处理。以下是几种常见场景的具体实现方式: 动态数据绑定 通过v-for指令循环渲染表格行数据,数据变化时表格自…

vue实现扇形图表

vue实现扇形图表

实现扇形图表的方法 在Vue中实现扇形图表可以通过多种方式完成,常见的方法包括使用第三方图表库或自定义SVG绘制。以下是两种常用的实现方式。 使用ECharts库 ECharts是一个功能强大的图表…