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 相关文章推荐
Jquery 基础学习笔记之文档处理
May 29 Javascript
在jQuery中 常用的选择器介绍
Apr 16 Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
jQuery取消ajax请求的方法
Jun 09 Javascript
学习javascript面向对象 理解javascript原型和原型链
Jan 04 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
Jun 07 Javascript
利用jQuery对无序列表排序的简单方法
Oct 16 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
极简主义法编写JavaScript类
Nov 02 Javascript
vue中如何创建多个ueditor实例教程
Nov 14 Javascript
jQuery中each遍历的三种方法实例分析
Sep 07 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中在PDO中使用事务(Transaction)
2011/05/14 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
使用python实现生成用户信息
2017/03/20 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
Django 实现下载文件功能的示例
2018/03/06 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
物业管理应届生求职信
2013/10/28 职场文书
自主招生自荐信格式
2013/12/03 职场文书
中专三年学习的个人自我评价
2013/12/12 职场文书
公司年会晚宴演讲稿
2014/01/06 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
经营场所证明范本
2015/06/19 职场文书
新员工入职感想
2015/08/07 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
800字作文之大雪
2019/12/04 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python