vue element 中的table動(dòng)態(tài)渲染實(shí)現(xiàn)(動(dòng)態(tài)表頭)
通過(guò)在vue中使用element的table表格,實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)渲染,并且動(dòng)態(tài)渲染表頭。通過(guò)在父組件中引入子組件表格,然后向子組件傳遞表格數(shù)據(jù)和表頭數(shù)據(jù)。
子組件table中template模板
<el-table
:data="this.tableData"
height="400px"
max-height="400px"
size="small"
row-class-name="row"
cell-class-name="column"
:row-style="setRowStyle"
:cell-style="setColumnStyle"
:highlight-current-row="true"
@cell-click="cellClick"
fit
>
<el-table-column
v-for="(item, index) in tableLabel"
:key="index"
:prop="item.prop"
:width="item.width"
:label="item.label">
</el-table-column>
</el-table>
接收父組件傳過(guò)來(lái)的數(shù)據(jù)
props: {
tableData: { // 父組件傳遞過(guò)來(lái)的表格數(shù)據(jù)
type: Array,
default: []
},
tableLabel: { // 父組件傳遞過(guò)來(lái)的表頭數(shù)據(jù)
type: Array,
default: () => {
return []
}
}
}
父組件
<file-table
:tableData="tableData"
:tableLabel="tableLabel"
>
</file-table>
data() {
return {
// 子組件的表格數(shù)據(jù)
tableData: [
{id: 1, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 2, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 3, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 4, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 5, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 6, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 7, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 8, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 9, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 10, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 11, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05},
{id: 12, date: '2018-07-24', sales: 23.34, sale: 137597.76, const: 102203.71, profit: 35394.05}
],
// 子組件的表頭數(shù)據(jù)
tableLabel: [
{label: '', width: '40', prop: 'id'},
{label: '日期', width: '', prop: 'date'},
{label: '銷售量', width: '', prop: 'sales'},
{label: '銷售額', width: '', prop: 'sale'},
{label: '成本', width: '', prop: 'const'},
{label: '利潤(rùn)', width: '', prop: 'profit'}
]
}
}
問(wèn)題:這種方式只能在一個(gè)組件中動(dòng)態(tài)渲染,但是當(dāng)我們需要操作每一列數(shù)據(jù)的時(shí)候,沒(méi)法操作,因?yàn)閑lement table再帶的方法是每個(gè)單元格點(diǎn)擊事件,而不符合我們需求,如何能實(shí)現(xiàn)表格動(dòng)態(tài)渲染,并且每個(gè)組件都能使用,還能夠?qū)崿F(xiàn)操作的可控的列,下節(jié)分享。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue?cli2?和?cli3去掉eslint檢查器報(bào)錯(cuò)的解決
這篇文章主要介紹了vue?cli2?和?cli3去掉eslint檢查器報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
詳解vue3中setUp和reactive函數(shù)的用法
這篇文章主要介紹了vue3函數(shù)setUp和reactive函數(shù)的相關(guān)知識(shí)及setup函數(shù)和reactive函數(shù)的注意點(diǎn),通過(guò)具體代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-06-06
Vue中使用 setTimeout() setInterval()函數(shù)的問(wèn)題
這篇文章主要介紹了Vue中使用 setTimeout() setInterval()函數(shù)的問(wèn)題 ,需要的朋友可以參考下2018-09-09
解決el-menu標(biāo)題過(guò)長(zhǎng)顯示不全問(wèn)題
本文主要介紹了如何解決el-menu標(biāo)題過(guò)長(zhǎng)顯示不全問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,感興趣的朋友們跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12

