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 相关文章推荐
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
javascript 拖放效果实现代码
Jan 22 Javascript
动态的绑定事件addEventListener方法的使用
Jan 24 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
Oct 16 Javascript
谈谈JavaScript中的几种借用方法
Aug 09 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
Dec 05 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
Dec 20 Javascript
Angular2.0实现modal对话框的方法示例
Feb 18 Javascript
JavaScript动态添加数据到表单并提交的几种方式
Jun 26 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 16 Javascript
一百多行代码实现react拖拽hooks
Mar 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 Smarty生成EXCEL文档的代码
2008/08/23 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
js实现随机数小游戏
2019/06/28 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
python math模块的基本使用教程
2021/01/16 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
应届大学生求职信
2013/12/01 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
2015年妇女工作总结
2015/05/14 职场文书