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 相关文章推荐
用js实现控件的隐藏及style.visibility的使用
Jun 14 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
Jul 30 Javascript
js实现jquery的offset()方法实例
Jan 10 Javascript
在JavaScript中使用NaN值的方法
Jun 05 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
你知道setTimeout是如何运行的吗?
Aug 16 Javascript
Bootstrap导航条的使用和理解3
Dec 14 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
Apr 21 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
Dec 07 Javascript
vue登录页面cookie的使用及页面跳转代码
Jul 10 Javascript
jQuery实现推拉门效果
Oct 19 jQuery
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下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
调整PHP的性能
2013/10/30 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
javascript 时间比较实现代码
2009/10/28 Javascript
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
python实现二叉树的遍历
2017/12/11 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
个人找工作的自我评价
2013/10/17 职场文书
平民服装店创业计划书
2014/01/17 职场文书
一份创业计划书范文
2014/02/08 职场文书
保密承诺书范文
2014/03/27 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
个人党性分析材料
2014/12/19 职场文书
谢师宴邀请函
2015/02/02 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python