VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解

 更新时间:2018年11月30日 09:39:57   作者:River_mx  
这篇文章主要介绍了VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

先看看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的代码可以这样改:


请忽略上图代码中的其他参数,看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
 },
}

这种数据结构也为后期的自定义拖拽配置动态列做了预备~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • vue实现打地鼠小游戏

    vue实现打地鼠小游戏

    这篇文章主要为大家详细介绍了vue实现打地鼠小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • idea编译器vue缩进报错问题场景分析

    idea编译器vue缩进报错问题场景分析

    idea编译器出现Vue缩进报错,怎么解决呢,很多朋友遇到这个问题都很棘手,不知该如何解决,今天小编给大家通过场景分析介绍解决方案,需要的朋友参考下吧
    2021-07-07
  • vue添加vue-awesome-swiper轮播组件方式

    vue添加vue-awesome-swiper轮播组件方式

    这篇文章主要介绍了vue添加vue-awesome-swiper轮播组件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue3中操作dom的四种方式保姆级教程(推荐!)

    Vue3中操作dom的四种方式保姆级教程(推荐!)

    某些情况下,我们仍然需要直接访问底层 DOM 元素,下面这篇文章主要给大家介绍了关于Vue3中操作dom的四种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • vue cli使用融云实现聊天功能的实例代码

    vue cli使用融云实现聊天功能的实例代码

    最近小编接了一个新项目,项目需求要实现一个聊天功能,今天小编通过实例代码给大家介绍vue cli使用融云实现聊天功能的方法,感兴趣的朋友跟随小编一起看看吧
    2019-04-04
  • vue3的reactive赋值问题解决

    vue3的reactive赋值问题解决

    vue3中直接对reactive声明的变量本身进行赋值是无效的,本文主要介绍了vue3的reactive赋值问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Vue如何设置button的disable属性

    Vue如何设置button的disable属性

    这篇文章主要介绍了Vue如何设置button的disable属性,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 解决Vue调用springboot接口403跨域问题

    解决Vue调用springboot接口403跨域问题

    这篇文章主要介绍了解决Vue调用springboot接口403跨域问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • vue中input type=file上传后@change事件无效的解决方案

    vue中input type=file上传后@change事件无效的解决方案

    这篇文章主要介绍了vue中input type=file上传后@change事件无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 前端vue a链接下载文件失败的问题(未发现文件)

    前端vue a链接下载文件失败的问题(未发现文件)

    这篇文章主要介绍了前端vue a链接下载文件失败的问题(未发现文件),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论