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 相关文章推荐
在线游戏大家来找茬II
Sep 30 Javascript
JavaScript 语言的递归编程
May 18 Javascript
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
AngularJS初始化过程分析(引导程序)
Dec 06 Javascript
jquery隔行换色效果实现方法
Jan 15 Javascript
jquery插件splitScren实现页面分屏切换模板特效
Jun 16 Javascript
js中跨域方法原理详解
Jul 19 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
JS正则替换掉小括号及内容的方法
Nov 29 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
Jan 13 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
浅谈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边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
浅谈php冒泡排序
2014/12/30 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
vue数据双向绑定原理解析(get &amp; set)
2017/03/08 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
python追加元素到列表的方法
2015/07/28 Python
import的本质解析
2017/10/30 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
365 Tickets英国:全球景点门票
2019/07/06 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
什么是GWT的Module
2013/01/20 面试题
校优秀毕业生主要事迹
2014/05/26 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书