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 08 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
JS获取DropDownList的value值与text值的示例代码
Jan 07 Javascript
Javascript常用小技巧汇总
Jun 24 Javascript
BootStrap table使用方法分析
Nov 08 Javascript
原生js轮播特效
May 18 Javascript
Vue异步组件处理路由组件加载状态的解决方案
Sep 07 Javascript
vue实现微信分享功能
Nov 28 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 Javascript
在vue中使用防抖函数组件操作
Jul 26 Javascript
vue项目中使用rem,在入口文件添加内容操作
Nov 11 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
PHP file_exists问题杂谈
2012/05/07 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
仓库保管员岗位职责
2013/12/20 职场文书
经典安踏广告词
2014/03/21 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript