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 相关文章推荐
tuzhu_req.js 实现仿百度图片首页效果
Aug 11 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
Sep 14 Javascript
jquery+json实现数据二级联动的方法
Nov 28 Javascript
前端微信支付js代码
Jul 25 Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 Javascript
jquery动态添加文本并获取值的方法
Oct 12 Javascript
基于JavaScript实现复选框的全选和取消全选
Feb 09 Javascript
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
vue-star评星组件开发实例
Mar 01 Javascript
JS如何把字符串转换成json
Feb 21 Javascript
不刷新网页就能链接新的js文件方法总结
Mar 01 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
Jul 27 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
jQuery 源码分析笔记
2011/05/25 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
js实现漫天星星效果
2017/01/19 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
python使用append合并两个数组的方法
2015/04/28 Python
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
python 检查是否为中文字符串的方法
2018/12/28 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python numpy存取文件的方式
2020/04/01 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
九年级语文教学反思
2014/02/04 职场文书
开业主持词
2014/03/21 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
2016消防宣传标语口号
2015/12/26 职场文书