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 相关文章推荐
浅析JavaScript中的typeof运算符
Nov 30 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
JavaScript给url网址进行encode编码的方法
Mar 18 Javascript
初步认识JavaScript函数库jQuery
Jun 18 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
Aug 07 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
Sep 19 Javascript
jQuery特殊符号转义的实现
Nov 30 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
layui清除radio的选中状态实例
Nov 14 Javascript
在Vue.js中使用TypeScript的方法
Mar 19 Javascript
详解vue-router的Import异步加载模块问题的解决方案
May 13 Javascript
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
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
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
python实现图像拼接
2020/03/05 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
《她是我的朋友》教学反思
2014/04/26 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
2014年工程师工作总结
2014/11/25 职场文书
组织生活会发言材料
2014/12/15 职场文书
工作经验交流材料
2014/12/30 职场文书
销售辞职信范文
2015/03/02 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android