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 相关文章推荐
基于node.js的快速开发透明代理
Dec 25 Javascript
javascript中类的定义方式详解(四种方式)
Dec 22 Javascript
Jquery zTree 树控件异步加载操作
Feb 25 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
Apr 30 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
Jun 25 Javascript
webpack学习--webpack经典7分钟入门教程
Jun 28 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
JavaScript中的ES6 Proxy的具体使用
Jun 16 Javascript
基于Vue和Element-Ui搭建项目的方法
Sep 06 Javascript
jquery实现掷骰子小游戏
Oct 24 jQuery
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 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
php4的session功能评述(一)
2006/10/09 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
20个最新的jQuery插件
2012/01/13 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
Python设计模式之观察者模式实例
2014/04/26 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
python 把列表转化为字符串的方法
2018/10/23 Python
Python面向对象进阶学习
2019/05/21 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
娱乐地球:Entertainment Earth
2020/01/08 全球购物
EJB面试题
2015/07/28 面试题
环境工程毕业生自荐信
2013/11/17 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
寒假家长评语大全
2014/04/16 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
MySQL分库分表详情
2021/09/25 MySQL
Golang获取List列表元素的四种方式
2022/04/20 Golang