elementui如何解決el-table重復(fù)寫(xiě)loading問(wèn)題
問(wèn)題
項(xiàng)目中使用 elementui
開(kāi)發(fā)表格的小伙伴知道,給 el-table
添加加載動(dòng)畫(huà)一般都是用 v-loading
指令,同時(shí)組建中添加 loading
變量來(lái)控制。
可是當(dāng)表格越來(lái)越多時(shí),每次都必須加一個(gè) loading 變量同時(shí)在請(qǐng)求數(shù)據(jù)的方法中必須耦合 loading 的控制邏輯。
太多的重復(fù)工作,既降低效率,也使得代碼難于維護(hù)。
解決方法
使用 Mixin + Proxy
- 第一步,創(chuàng)建 loading.js 作為 mixin,使用 Proxy 代理請(qǐng)求數(shù)據(jù)的方法
getTableData
export default { data() { return { loading: false, } }, created() { this.getTableData= new Proxy(this.getTableData, { apply: (target, context, argumentsList) => { context.loading = true let res = target.apply(context, argumentsList) if(!(res instanceof Promise)) { throw new Error('Request should return an promise instance') } res.finally(() => { context.loading = false }) } }) } }
- 第二步,在組建中使用引入 mixin
<script> import loading from './loading.js' export default { mixins: [loading], methods: { async getTableData() { let res = await apiRequest() this.tableData = res.list } } </script>
在線效果預(yù)覽
總結(jié)
通過(guò)使用 loading.js,我們就能一勞永逸地從重復(fù)的寫(xiě) loading 工作中解脫出來(lái),同時(shí)避免寫(xiě)錯(cuò)寫(xiě)漏,代碼的健壯性和可維護(hù)性也變高了。
對(duì) vue2 的 mixin 或 Proxy 的知識(shí)不太了解的小伙伴,可以參考下面的官方文檔。
MDN文檔:使用 Proxy 代理方法 handler.apply()
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 關(guān)于ElementUI el-table 鼠標(biāo)滾動(dòng)失靈的問(wèn)題及解決辦法
- ElementUI實(shí)現(xiàn)el-table行列合并的操作步驟
- ElementUI動(dòng)態(tài)渲染el-table的實(shí)現(xiàn)過(guò)程
- elementui實(shí)現(xiàn)表格(el-table)默認(rèn)選中功能
- ElementUI?el-table?樹(shù)形數(shù)據(jù)的懶加載的實(shí)現(xiàn)
- vue2+elementui的el-table固定列會(huì)遮住橫向滾動(dòng)條及錯(cuò)位問(wèn)題解決方案
- elementui?el-table底層背景色修改簡(jiǎn)單方法
- elementui el-table中如何給表頭 el-table-column 加一個(gè)鼠標(biāo)移入提示說(shuō)明
相關(guān)文章
VUE頁(yè)面中通過(guò)雙擊實(shí)現(xiàn)復(fù)制表格中內(nèi)容的示例代碼
這篇文章主要介紹了VUE頁(yè)面中通過(guò)雙擊實(shí)現(xiàn)復(fù)制表格中內(nèi)容,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Vue使用 onMounted 確保在組件掛載后執(zhí)行異步操作示例詳解
在 Vue.js 或其他類似框架中,使用 onMounted 是為了確保在組件掛載后執(zhí)行異步操作,這篇文章主要介紹了Vue使用onMounted確保在組件掛載后執(zhí)行異步操作,需要的朋友可以參考下2023-06-06vue實(shí)現(xiàn)對(duì)highlight-current-row方式整行選中后修改默認(rèn)背景顏色
這篇文章主要介紹了vue實(shí)現(xiàn)對(duì)highlight-current-row方式整行選中后修改默認(rèn)背景顏色方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Vue下載Excel后報(bào)錯(cuò),或打不開(kāi)的解決
這篇文章主要介紹了Vue下載Excel后報(bào)錯(cuò),或打不開(kāi)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02vue?如何刪除數(shù)組中的某一條數(shù)據(jù)
這篇文章主要介紹了vue?如何刪除數(shù)組中的某一條數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08淺析vue3響應(yīng)式數(shù)據(jù)與watch屬性
這篇文章主要介紹了vue3響應(yīng)式數(shù)據(jù)與watch屬性的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05