详解el-table表头文字换行的三种方式

 更新时间:2021年11月11日 14:18:04   作者:水冗水孚  
本文主要介绍了el-table表头文字换行的三种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

问题描述

表格中的表头一般都是不换行的,不过有时候在某些业务场景中,需要让表头的文字换行展示一下,我们先看一下效果图

效果图

三种方式的代码

看注释就行啦。
演示的话,直接复制粘贴运行就行啦

<template>
  <div class="vueWrap">
    <el-table
      style="width: 900px"
      :data="tableBody"
      border
      :header-cell-style="{
        background: '#FAFAFA',
        color: '#333333',
        fontWeight: 'bold',
        fontSize: '14px',
      }"
    >
      <el-table-column
        type="index"
        label="序号"
        width="58"
        align="center"
      ></el-table-column>

      <!-- 表头换行方式一,使用头部插槽方式,将表头文字拆分在两个div中,因为div盒子是块元素
           所以两个div会换行,所以表头就换行了,此方式适用于固定数据的表头换行 -->
      <el-table-column prop="toolName" width="180" align="center">
        <template slot="header">
          <div>工具箱</div>
          <div>零件名称</div>
        </template>
        <template slot-scope="scope">
          <span>{{ scope.row.toolName }}</span>
        </template>
      </el-table-column>

      <el-table-column label="供应商" prop="supplier" width="120" align="center">
      </el-table-column>

      <!-- 表头换行方式二,较之于方式一,这种方式是/n换行符,加css的white-space空白样式控制-->
      <el-table-column
        :label="labelFn()"
        prop="supplierCountry"
        width="180"
        align="center"
      >
      </el-table-column>

      <!-- 表头换行方式三,动态方式 -->
      <el-table-column
        v-for="(item, index) in tableHeader"
        :key="index"
        :label="item.labelName"
        :prop="item.propName"
        width="180"
        align="center"
        :render-header="renderheader"
      ></el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      // 动态数据表头就需要让后端返回来了,让其在需要换行的地方用逗号分隔开
      tableHeader: [
        {
          labelName: "型号001,价格(元)",
          propName: "typeOne",
        },
        {
          labelName: "型号002,价格(元)",
          propName: "typeTwo",
        },
      ],
      // 表体数据
      tableBody: [
        {
          id: "2021111101",
          toolName: "5G服务",
          supplier: "华为",
          supplierCountry: "中国",
          typeOne: "8888888",
          typeTwo: "9999999",
        },
        {
          id: "2021111101",
          toolName: "6G-SERVER",
          supplier: "中华有为",
          supplierCountry: "CHINA",
          typeOne: "678678678",
          typeTwo: "789789789",
        },
      ],
    };
  },
  methods: {
    labelFn() {
      // 在需要换行的地方加入换行符 \n  ,在搭配最底下的white-space样式设置
      return `供应商\n所属国家`;
    },

    // 饿了么UI的表头函数渲染方式,这种方式和表头插槽方式有点类似
    // 也是把表头的数据文字分割成两块,然后将内容渲染到两个div中(div自动换行)
    renderheader(h, { column, $index }) {
      return h("div", {}, [
        h("div", {}, column.label.split(",")[0]),
        h("div", {}, column.label.split(",")[1]),
      ]);
    },
    
  },
};
</script>
<style lang="less" scoped>
/deep/ .el-table th.el-table__cell > .cell {
  white-space: pre;
  // white-space: pre-wrap; // 也行。
  
}
</style>

关于white-space不赘述,详情查询官方文档 developer.mozilla.org/zh-CN/docs/Web/CSS/white-space

总结

三种方式各有特色,但是render-header会略为耗费一点点性能。
若为固定表头数据,则优先推荐使用表头插槽方式,其次推荐换行符加css方式。
若为动态数据,则只能使用表头renderheader函数了

到此这篇关于el-table表头文字换行的三种方式的文章就介绍到这了,更多相关el-table表头文字换行的三种方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 详细分析vue响应式原理

    详细分析vue响应式原理

    这篇文章主要介绍了vue响应式原理的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • Vue3 setup的注意点及watch监视属性的六种情况分析

    Vue3 setup的注意点及watch监视属性的六种情况分析

    这篇文章主要介绍了Vue3 setup的注意点及watch监视属性的六种情况,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • vue集成高德地图amap-jsapi-loader的实现

    vue集成高德地图amap-jsapi-loader的实现

    本文主要介绍了vue集成高德地图amap-jsapi-loader的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 推荐VSCode 上特别好用的 Vue 插件之vetur

    推荐VSCode 上特别好用的 Vue 插件之vetur

    这篇文章主要介绍了推荐VSCode 上特别好用的 Vue 插件之vetur,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Vue中的Object.defineProperty全面理解

    Vue中的Object.defineProperty全面理解

    这篇文章主要介绍了Vue中的Object.defineProperty全面理解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 在vue中实现低代码组件参数配置的流程步骤

    在vue中实现低代码组件参数配置的流程步骤

    这篇文章主要介绍了在vue中实现低代码组件参数配置的流程步骤,文中的代码示例讲解的非常详细,对我们的学习或工作有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • Vue-Router进阶之滚动行为详解

    Vue-Router进阶之滚动行为详解

    本篇文章主要介绍了Vue-Router进阶之滚动行为详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Vue实现简单选项卡效果

    Vue实现简单选项卡效果

    这篇文章主要为大家详细介绍了Vue实现简单选项卡效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue中iframe使用以及结合postMessage实现跨域通信

    vue中iframe使用以及结合postMessage实现跨域通信

    这篇文章主要介绍了vue中iframe使用以及结合postMessage实现跨域通信方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • 一步步详细讲解vue3配置ESLint

    一步步详细讲解vue3配置ESLint

    ESLint主要用于代码规范、统一代码风格,下面这篇文章主要给大家介绍了关于vue3配置ESLint的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01

最新评论