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 相关文章推荐
div模拟滚动条效果示例代码
Oct 16 Javascript
纯css+js写的一个简单的tab标签页带样式
Jan 28 Javascript
js单词形式的运算符
May 06 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
Dec 20 Javascript
JQuery中DOM事件合成用法实例分析
Jun 13 Javascript
很棒的一组js图片轮播特效
Jan 12 Javascript
超全面的vue.js使用总结
Feb 12 Javascript
ionic选择多张图片上传的示例代码
Oct 10 Javascript
Vue中的slot使用插槽分发内容的方法
Mar 01 Javascript
手把手教你使用TypeScript开发Node.js应用
May 06 Javascript
微信小程序 this.triggerEvent()的具体使用
Dec 10 Javascript
JS监听组合按键思路及实现过程
Apr 17 Javascript
浅谈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下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
js 居中漂浮广告
2010/03/21 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
python获取本机所有IP地址的方法
2018/12/26 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
大学在校生求职信范文
2013/11/21 职场文书
七年级英语教学反思
2014/01/15 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
高考1977观后感
2015/06/04 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
埃及王子观后感
2015/06/16 职场文书
2016年寒假生活小结
2015/10/10 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript