ElementUI2.0组件库el-table表格组件如何自定义表头?

2023-11-08

问题概述

鼠标移动到el-table表格组件的表头显示提示信息,也算是自定义表头的一种吧。

效果图:(宝宝不会做动图,宝宝心里苦!!!尴尬

1. ElementUI2.0组件库el-table表格组件常规用法

先贴上ElementUI2.0组件库的官网地址:http://element-cn.eleme.io/#/zh-CN ,百度搜索“element”第一个就是啦。

平常使用el-table表格组件是这样的:

1.   给表格传参,tableData是一个数组。

tableData = [
  {date: '2018-01-01',tradeCount: 200, tradeSum: 100}, 
  {date: '2018-01-01', tradeCount: 200,tradeSum: 100}
]

2.   在<el-table-column>中用prop属性来对应对象中的键名即可填入数据。

3.   用label属性来定义表格的列名。可以使用width属性来定义列宽。

4.   表格组件中默认文本居左显示。align=”right”属性可设置文本向右显示,当然还有 left、 center 等属性值。

5.   若想在单元格中自定义,要用<template>标签包裹起来,slot-scope属性传参,scope.row取值。

6.   添加事件。

7. 表格还有很多丰富的参数,根据项目需求选择合适的参数吧!

有了对于el-table的基本了解之后,下面开始正式介绍如何在el-table表格组件中自定义表头!!!

2. render-header属性了解一下

我们不能直接在prop属性直接传递一个组件或者html元素。正确的做法是:Table组件提供了render-header属性,可以好好利用一番。

这是官网对render-header属性的描述

3. 解决办法--JSX语法

1.   在<el-table-column>中传入render-header属性

<el-table-column align="right" :render-header="renderHeader">
    <template slot-scope="scope">{{scope.row.collected}}</template>
</el-table-column>

2.   在methods自定义renderHeader方法,return (<div></div>)是JSX语法,详见官网 https://cn.vuejs.org/v2/guide/render-function.html#JSX

renderHeader(h, { column, $index }){
  return (
    <div>
        <span>实收总金额(元) </span>
        <el-tooltip class="item" effect="dark" content="实收总金额 = 收款总金额 - 退款总金额"  placement="bottom">
          <i class="el-icon-warning table-msg"></i>
        </el-tooltip>
    </div>
  )
}

3.   npm run dev 编译项目之后,报错,要使用jsx语法需要先安装编译插件

4. 安装JSX语法编译工具

npm install\
  babel-plugin-syntax-jsx\
  babel-plugin-transform-vue-jsx\
  babel-helper-vue-jsx-merge-props\
  babel-preset-es2015\
  --save-dev

5. 配置.babelrc文件

{
  "presets": ["es2015"],
  "plugins": ["transform-vue-jsx"]
}

4. 解决办法--渲染函数

可直接使用渲染函数,不使用JSX语法,就不需要安装额外的编译插件啦

renderHeader(h, data) {
    return h("div", [
        h("span", ['实收总金额(元) ']),
        h("el-tooltip", {
            attrs: {
                class: "item",
                effect: "dark",
                content: "实收总金额 = 收款总金额 - 退款总金额",
                placement: "bottom"
            }
        }, [
            h("i", {
                'class': 'el-icon-warning table-msg'
            })
        ])
    ])
}

h 作为 createElement 的别名是 Vue 生态系统中的一个通用惯例,实际上也是 JSX 所要求的,如果在作用域中 h 失去作用, 在应用中会触发报错

问题汇总:

1. 博主根据实际项目情况,编写了这篇博文。存在一个坑????

看到这个小小的i标签没有,就是它。有同学直接拷贝代码之后,因为没有对这个i 标签设置样式。也就没有鼠标上移显示tooltip的效果了。因为将上文我们的tooltip组件翻译成HTML代码是这样的:(我们把鼠标放到i标签上才能显示tooltip哦)

<div>
  <span>实收总金额(元) </span>
  <el-tooltip class="item" effect="dark" content="实收总金额 = 收款总金额 - 退款总金额" placement="bottom">
    <i class="el-icon-warning table-msg"></i>
  </el-tooltip>
</div>

2.  渲染函数的语法规则详见 https://cn.vuejs.org/v2/guide/render-function.html,自己多写几遍就能明白啦!

对于如何在自定义表头添加事件,可以查看《createElement参数——深入data对象》 https://cn.vuejs.org/v2/guide/render-function.html#%E6%B7%B1%E5%85%A5-data-%E5%AF%B9%E8%B1%A1 

与君共勉:再牛逼的梦想,也抵不住傻逼般的坚持!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElementUI2.0组件库el-table表格组件如何自定义表头? 的相关文章

随机推荐

  • 什么是配置环境?如何配置环境?回答很多计算机入门者都会遇到的问题

    什么是配置环境 如何配置环境 回答很多计算机入门者都会遇到的问题 1 前言 编程入门时往往会遇到各种需要配置环境变量的场景 比如刚开始学习python java等 我也和你们一样经历过在网上找各种配环境的教程 然后按部就班地操作 但重复进行
  • 【卡尔曼滤波器】递归算法

    大家好 我是小政 最近在学习卡尔曼滤波 本篇文章记录一下我学习的卡尔曼滤波器中的递归算法 通过举例子让大家更加清晰理解递归到底是什么 希望与同是卡尔曼滤波研究方向的同学进行一些交流 递归算法 1 为什么要用卡尔曼滤波器 2 公式推导 3 举
  • java.lang.OutOfMemoryError: Java heap space .

    java lang OutOfMemoryError Java heap space 解决方案 1 进入eclipse界面中的servers选项卡 右击 工程配置的tomcat项 单击 Open 如图 2 单击 Open launch co
  • c语言课程设计籍贯流程图,学生籍贯信息记录簿(C语言课程设计)教程解读.doc

    计算机科学与技术系 课程设计报告 2012 2013 学年第1学期 课程C语言课程设计课程设计名称学生籍贯信息记录簿设计学生姓名学号专业班级指导教师 目录 一 绪言 需求分析 二 系统设计 一 设计思想 二 源程序设计 三 设计表示 三 系
  • Linux中的线程(一)-- 线程的创建

    什么是线程 Linux 中的线程被称为 轻量级进程 Lightweight Process LWP 它是在进程内部运行的一种 子进程 与传统的进程不同 线程共享相同的虚拟地址空间和其他资源 例如打开的文件 信号处理程序和用户 ID 等 线程
  • hello world C C++ Python Java Go

    碎碎念念 hello world是程序设计语言必打 入门小白都会在学习之初来这么一手 C include
  • 项目介绍star原理_简历中、面试中,怎么描述你的工作/项目经历?

    简历中一般会包括工作经历和项目经历这两个模块 面试官也会注重针对这两个模块进行提问 对于这两部分 我们都会面临一个如何描述与表达的问题 一 如何写好简历中的工作 项目经历 1 工作 项目经历描述法则 STAR法则 STAR法则的四个关键词的
  • 云监控系统 HertzBeat v1.1.0 发布,一条命令开启监控之旅!

    官网 hertzbeat com tancloud cn 大家早上好 HertzBeat v1 1 0 发布啦 这个版本我们支持了SNMP协议 并使用SNMP协议监控支持了windwos操作系统的应用监控 SNMP协议支持自定义监控 欢迎贡
  • java的imageicon用法详解_javaimageicon用法

    import java awt BorderLayout import java awt GridLayout import java awt event ActionEvent import javax swing ImageIcon i
  • Media Player播放视频只有声音没有图像

    今天在播放学生信息管理系统的时候发现视频播放后只有声音 却没有图像 这是什么原因呢 一 什么是media player播放器 Windows Media Player 是微软公司出品的一款播放器 通常简称 WMP 通常在Windows操作系
  • 系统架构设计专业技能 · 软件工程之软件测试与维护

    系列文章目录 系统架构设计专业技能 网络规划与设计 三 系统架构设计师 系统架构设计专业技能 系统安全分析与设计 四 系统架构设计师 系统架构设计高级技能 软件架构设计 一 系统架构设计师 系统架构设计高级技能 系统质量属性与架构评估 二
  • PostGreSQL数据库有的为啥找不到数据类型(比如Double)

    今天用NavCate建立PostGreSql建标 使用Double发现居然没有这个类型 百度各种博客都表示有Double类型 但是我测试就没了 后来发现 这里面居然有别名 名字 别名 描述 bigint int8 有符号 8 字节整数 bi
  • 蓝牙PHY6222添加OTA升级功能

    主要步骤 1 代码添加 ota app service 2 keil软件添加ota app代码 3 烧录软件添加ota设置 4 手机ota app升级 准备 奉加微电子官网下载6222的代码SDK V3 0以上 下载官网的PhyPlusKi
  • 谷歌浏览器打开时为桔梗网

    右击 gt 打开文件所在位置 然后将桌面的快捷方式删除 重新创建快捷方式
  • MySQL Server最佳实践

    备份 backups 监控 moitoring 配置 configuration 模式和查询 schema and queries 系统 system 其他 other Backups 备份 做数据库备份 在系统改变时做数据库备份例如升级前
  • 跨域问题详解及解决方案

    文章目录 一 前言 二 什么是跨域问题 三 为什么会出现跨域问题 四 什么情况下会出现跨域 五 如何解决跨域问题 5 1 使用 CrossOrigin注解 5 2 使用WebMvcConfigurer 5 3 使用Filter 六 代码示例
  • Java连接Oracle数据库开发银行管理系统【三、实现篇】

    说明 里面的主要代码都加的有注释部分 所以代码显得很长 如果有错误的地方 谢谢指出 注意需要导入数据库jar包 1 com ll test包下面类 1 1 test类 package com ll test import com ll se
  • pygame的动图实现方法

    最近在完善一个飞机大战的小游戏 一比一按照书上做出来的有些简陋 所以自己往里面加了不少元素 其中一项便是子弹的动态效果 但是pygame不支持gif的动图 可以导入 但不会动 那么该怎么办呢 我们知道 动图的原理其实就是把一组图片快速播放
  • 【测试开发】阿里十年总结之软件测试的价值

    阿里十年总结之软件测试的价值 1 前言 2 质量是什么 2 1 质量是一种奢侈品 2 2 质量是产品的特性 2 3 质量的重要性取决于业务 3 测试能给业务带来什么 3 1 为什么需要测试 3 2 从质量保障到研发效能 4 测试团队如何去突
  • ElementUI2.0组件库el-table表格组件如何自定义表头?

    问题概述 鼠标移动到el table表格组件的表头显示提示信息 也算是自定义表头的一种吧 效果图 宝宝不会做动图 宝宝心里苦 1 ElementUI2 0组件库el table表格组件常规用法 先贴上ElementUI2 0组件库的官网地址