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调试logger组件实现代码
Nov 20 Javascript
解析John Resig Simple JavaScript Inheritance代码
Dec 03 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
Javascript实现汉字和拼音互转的终极方案
Oct 19 Javascript
Angular.js中控制器之间的传值详解
Apr 24 Javascript
12个非常有用的JavaScript技巧
May 17 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 Javascript
js使用html2canvas实现屏幕截取的示例代码
Aug 28 Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 Javascript
JS绘图Flot如何实现可选显示曲线图功能
Oct 16 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
Dec 07 Vue.js
在JavaScript中查找字符串中最长单词的三种方法(推荐)
Jan 18 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计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python实现用户管理系统
2018/01/10 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
教育学习自我评价
2014/02/03 职场文书
四查四看剖析材料
2014/02/14 职场文书
内科护士节演讲稿
2014/09/11 职场文书
师德师风自查材料
2014/10/14 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
北京颐和园导游词
2015/01/30 职场文书
大学班干部竞选稿
2015/11/20 职场文书
Python 视频画质增强
2022/04/28 Python