ElementUI中el-table表格組件如何自定義表頭
問題概述
鼠標(biāo)移動(dòng)到el-table表格組件的表頭顯示提示信息,也算是自定義表頭的一種吧。
效果圖:(寶寶不會(huì)做動(dòng)圖,寶寶心里苦!?。。?/p>
1. ElementUI2.0組件庫el-table表格組件常規(guī)用法
先貼上ElementUI2.0組件庫的官網(wǎng)地址:http://element-cn.eleme.io/#/zh-CN ,百度搜索“element”第一個(gè)就是啦。
平常使用el-table表格組件是這樣的:
1. 給表格傳參,tableData是一個(gè)數(shù)組。
tableData = [ {date: '2018-01-01',tradeCount: 200, tradeSum: 100}, {date: '2018-01-01', tradeCount: 200,tradeSum: 100} ]
2. 在<el-table-column>中用prop屬性來對應(yīng)對象中的鍵名即可填入數(shù)據(jù)。
3. 用label屬性來定義表格的列名??梢允褂?strong>width屬性來定義列寬。
4. 表格組件中默認(rèn)文本居左顯示。align=”right”屬性可設(shè)置文本向右顯示,當(dāng)然還有 left、 center 等屬性值。
5. 若想在單元格中自定義,要用<template>標(biāo)簽包裹起來,slot-scope屬性傳參,scope.row取值。
6. 添加事件。
7. 表格還有很多豐富的參數(shù),根據(jù)項(xiàng)目需求選擇合適的參數(shù)吧!
有了對于el-table的基本了解之后,下面開始正式介紹如何在el-table表格組件中自定義表頭?。?!
2. render-header屬性了解一下
我們不能直接在prop屬性直接傳遞一個(gè)組件或者h(yuǎn)tml元素。正確的做法是:Table組件提供了render-header屬性,可以好好利用一番。
這是官網(wǎng)對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語法,詳見官網(wǎng) https://cn.vuejs.org/v2/guide/render-function.html#JSX
renderHeader(h, { column, $index }){ return ( <div> <span>實(shí)收總金額(元) </span> <el-tooltip class="item" effect="dark" content="實(shí)收總金額 = 收款總金額 - 退款總金額" placement="bottom"> <i class="el-icon-warning table-msg"></i> </el-tooltip> </div> ) }
3. npm run dev 編譯項(xiàng)目之后,報(bào)錯(cuò),要使用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. 解決辦法--渲染函數(shù)
可直接使用渲染函數(shù),不使用JSX語法,就不需要安裝額外的編譯插件啦
renderHeader(h, data) { return h("div", [ h("span", ['實(shí)收總金額(元) ']), h("el-tooltip", { attrs: { class: "item", effect: "dark", content: "實(shí)收總金額 = 收款總金額 - 退款總金額", placement: "bottom" } }, [ h("i", { 'class': 'el-icon-warning table-msg' }) ]) ]) }
h 作為 createElement 的別名是 Vue 生態(tài)系統(tǒng)中的一個(gè)通用慣例,實(shí)際上也是 JSX 所要求的,如果在作用域中 h 失去作用, 在應(yīng)用中會(huì)觸發(fā)報(bào)錯(cuò)
問題匯總:
1. 博主根據(jù)實(shí)際項(xiàng)目情況,編寫了這篇博文。存在一個(gè)坑????
看到這個(gè)小小的i標(biāo)簽沒有,就是它。有同學(xué)直接拷貝代碼之后,因?yàn)闆]有對這個(gè)i 標(biāo)簽設(shè)置樣式。也就沒有鼠標(biāo)上移顯示tooltip的效果了。因?yàn)閷⑸衔奈覀兊膖ooltip組件翻譯成HTML代碼是這樣的:(我們把鼠標(biāo)放到i標(biāo)簽上才能顯示tooltip哦)
<div> <span>實(shí)收總金額(元) </span> <el-tooltip class="item" effect="dark" content="實(shí)收總金額 = 收款總金額 - 退款總金額" placement="bottom"> <i class="el-icon-warning table-msg"></i> </el-tooltip> </div>
2. 渲染函數(shù)的語法規(guī)則詳見 https://cn.vuejs.org/v2/guide/render-function.html,自己多寫幾遍就能明白啦!
對于如何在自定義表頭添加事件,可以查看《createElement參數(shù)——深入data對象》
到此這篇關(guān)于ElementUI中el-table表格組件如何自定義表頭的文章就介紹到這了,更多相關(guān)el-table自定義表頭內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于移動(dòng)端與大屏幕自適應(yīng)適配方案
這篇文章主要介紹了關(guān)于移動(dòng)端與大屏幕自適應(yīng)適配方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10vue組件封裝實(shí)現(xiàn)抽獎(jiǎng)隨機(jī)數(shù)
這篇文章主要為大家詳細(xì)介紹了vue組件封裝實(shí)現(xiàn)抽獎(jiǎng)隨機(jī)數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Vue實(shí)現(xiàn)訂單支付倒計(jì)時(shí)功能
這篇文章主要給大家介紹了Vue實(shí)現(xiàn)訂單支付倒計(jì)時(shí)功能,倒計(jì)時(shí)這要運(yùn)用在創(chuàng)建訂單后15分鐘內(nèi)進(jìn)行支付,否則訂單取消,本文結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友可以參考下2023-08-08elementUI中el-dropdown的command實(shí)現(xiàn)傳遞多個(gè)參數(shù)
這篇文章主要介紹了elementUI中el-dropdown的command實(shí)現(xiàn)傳遞多個(gè)參數(shù)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Vs-code/WebStorm中構(gòu)建Vue項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了在Vs-code/WebStorm中構(gòu)建Vue項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08如何利用vue展示.docx文件、excel文件和csv文件內(nèi)容
最近遇到了一些新的需求,需要前端實(shí)現(xiàn)文件預(yù)覽功能,下面這篇文章主要給大家介紹了關(guān)于如何利用vue展示.docx文件、excel文件和csv文件內(nèi)容的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04Vue?和?Django?實(shí)現(xiàn)?Token?身份驗(yàn)證的流程
這篇文章主要介紹了Vue?和?Django?實(shí)現(xiàn)?Token?身份驗(yàn)證?,Vue.js?和?Django?編寫的前后端項(xiàng)目中,實(shí)現(xiàn)了基于?Token?的身份驗(yàn)證機(jī)制,其他前后端框架的?Token?實(shí)現(xiàn)原理與本文一致,需要的朋友可以參考下2022-08-08