VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解


Posted in Javascript onNovember 30, 2018

先看看ElementUI里关于el-table的template数据结构:

<template>
  <el-table
   :data="tableData"
   style="width: 100%">
   <el-table-column
    prop="date"
    label="日期"
    width="180">
   </el-table-column>
   <el-table-column
    prop="name"
    label="姓名"
    width="180">
   </el-table-column>
   <el-table-column
    prop="address"
    label="地址">
   </el-table-column>
  </el-table>
 </template>

再看看ElementUI里关于el-table的data数据结构:

<script>
  export default {
   data() {
    return {
     tableData: [{
      date: '2016-05-02',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1518 弄'
     }, {
      date: '2016-05-04',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1517 弄'
     }, {
      date: '2016-05-01',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1519 弄'
     }, {
      date: '2016-05-03',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1516 弄'
     }]
    }
   }
  }
</script>

那么问题来了,如果有很多prop怎么办?比如几百个?那就要用到循环结构了,获取到data数据之后,template的代码可以这样改:

VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解

请忽略上图代码中的其他参数,看v-for指令,里面的positionList对应的是el-table 里 :data="tableData",把它的任意数组里对象的key取出来就好了

细心的小伙伴已经发现了,我还用了动态的width,为了解决不同字数长度的表头折行显示的问题,这里的数据存在了positionKey的对象里,专门用来匹配到途中代码通过v-for循环对应的index(key)一致,从而获取到对应的width,为了方便使用,positionKey的数据结构是这样的:

export const positionKey= {
 key1: {
  title: '表头对应的文字1',
  width: 100
 },
 key2: {
  title: '表头对应的文字2',
  width: 120
 },
 key3: {
  title: '表头对应的文字3',
  width: 110
 },
}

这种数据结构也为后期的自定义拖拽配置动态列做了预备~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
document.compatMode介绍
May 21 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
Dec 06 Javascript
图片上传判断及预览脚本的效果实例
Aug 07 Javascript
jQuery实现径向动画菜单效果
Jul 17 Javascript
javascript密码强度校验代码(两种方法)
Aug 10 Javascript
Vue.js每天必学之过滤器与自定义过滤器
Sep 07 Javascript
浅述Javascript的外部对象
Dec 07 Javascript
js微信支付实现代码
Dec 22 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 Javascript
js字符串倒序的实例代码
Nov 30 #Javascript
实例讲解JavaScript截取字符串
Nov 30 #Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
Nov 30 #Javascript
使用canvas实现一个vue弹幕组件功能
Nov 30 #Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 #Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 #Javascript
基于JavaScript实现每日签到打卡轨迹功能
Nov 29 #Javascript
You might like
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
PHP中的use关键字概述
2014/07/23 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
Python实现控制台输入密码的方法
2015/05/29 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
货车司机岗位职责
2014/03/18 职场文书
物理课外活动总结
2014/08/27 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书