vue element 中的table动态渲染实现(动态表头)


Posted in Javascript onNovember 21, 2019

通过在vue中使用element的table表格,实现数据动态渲染,并且动态渲染表头。通过在父组件中引入子组件表格,然后向子组件传递表格数据和表头数据。

子组件table中template模板

<el-table 
  :data="this.tableData"
  height="400px" 
  max-height="400px" 
  size="small"
  row-class-name="row"
  cell-class-name="column"
  :row-style="setRowStyle"
  :cell-style="setColumnStyle"
  :highlight-current-row="true"
  @cell-click="cellClick"
  fit
  >
  <el-table-column
    v-for="(item, index) in tableLabel"
    :key="index" 
    :prop="item.prop" 
    :width="item.width" 
    :label="item.label">
  </el-table-column>
</el-table>

接收父组件传过来的数据

props: {
 tableData: { // 父组件传递过来的表格数据
    type: Array,
    default: []
  },
  tableLabel: { // 父组件传递过来的表头数据
    type: Array,
    default: () => {
      return []
    }
  }
}

父组件

<file-table 
 :tableData="tableData"
 :tableLabel="tableLabel"
>
</file-table>


data() {
 return {
 // 子组件的表格数据
 tableData: [
  {id: 1, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 2, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 3, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 4, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 5, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 6, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 7, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 8, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 9, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 10, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 11, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
  {id: 12, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05}
 ],
 // 子组件的表头数据
 tableLabel: [
      {label: '', width: '40', prop: 'id'},
      {label: '日期', width: '', prop: 'date'},
      {label: '销售量', width: '', prop: 'sales'},
      {label: '销售额', width: '', prop: 'sale'},
      {label: '成本', width: '', prop: 'const'},
      {label: '利润', width: '', prop: 'profit'}
    ]
 }
}

问题:这种方式只能在一个组件中动态渲染,但是当我们需要操作每一列数据的时候,没法操作,因为element table再带的方法是每个单元格点击事件,而不符合我们需求,如何能实现表格动态渲染,并且每个组件都能使用,还能够实现操作的可控的列,下节分享。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
jquery UI Datepicker时间控件的使用及问题解决
Apr 28 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
Aug 26 Javascript
使用vue.js编写蓝色拼图小游戏
Mar 17 Javascript
angularjs之$timeout指令详解
Jun 13 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
Jan 15 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
Jul 24 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 Javascript
js绘制一条直线并旋转45度
Aug 21 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
浅谈Vue SSR中的Bundle的具有使用
Nov 21 #Javascript
webpack常用构建优化策略小结
Nov 21 #Javascript
Vue 中 filter 与 computed 的区别与用法解析
Nov 21 #Javascript
js实现课堂随机点名系统
Nov 21 #Javascript
JavaScript实现简单随机点名器
Nov 21 #Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
Nov 21 #Javascript
Vue实现按钮级权限方案
Nov 21 #Javascript
You might like
一个php作的文本留言本的例子(三)
2006/10/09 PHP
PHP函数学习之PHP函数点评
2012/07/05 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
javascript 写类方式之七
2009/07/05 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
python编程实现归并排序
2017/04/14 Python
python实现Windows电脑定时关机
2018/06/20 Python
python通过实例讲解反射机制
2019/10/17 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
智能旅行箱:Horizn Studios
2018/04/30 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
麦当劳辞职信范文
2014/01/18 职场文书
党校培训自我鉴定
2014/02/01 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL