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 模拟点击广告
Jan 02 Javascript
Jquery 常用方法经典总结
Jan 28 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
JavaScript中奇葩的假值示例应用
Mar 11 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
js替换字符串中所有指定的字符(实现代码)
Aug 17 Javascript
Bootstrap Table使用心得总结
Nov 29 Javascript
详谈js遍历集合(Array,Map,Set)
Apr 06 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 Javascript
使用D3.js创建物流地图的示例代码
Jan 27 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
Aug 19 Javascript
javascript+Canvas实现画板功能
Jun 23 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中函数前加&amp;符号的作用分解
2014/07/08 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
Python实现excel转sqlite的方法
2017/07/17 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
对numpy中shape的深入理解
2018/06/15 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
广告设计专业自荐信范文
2013/11/14 职场文书
环保倡议书怎么写
2014/05/16 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫