elementui如何解決el-table重復(fù)寫loading問題
問題
項目中使用 elementui 開發(fā)表格的小伙伴知道,給 el-table 添加加載動畫一般都是用 v-loading 指令,同時組建中添加 loading 變量來控制。
可是當(dāng)表格越來越多時,每次都必須加一個 loading 變量同時在請求數(shù)據(jù)的方法中必須耦合 loading 的控制邏輯。
太多的重復(fù)工作,既降低效率,也使得代碼難于維護(hù)。
解決方法
使用 Mixin + Proxy
- 第一步,創(chuàng)建 loading.js 作為 mixin,使用 Proxy 代理請求數(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é)
通過使用 loading.js,我們就能一勞永逸地從重復(fù)的寫 loading 工作中解脫出來,同時避免寫錯寫漏,代碼的健壯性和可維護(hù)性也變高了。
對 vue2 的 mixin 或 Proxy 的知識不太了解的小伙伴,可以參考下面的官方文檔。
MDN文檔:使用 Proxy 代理方法 handler.apply()
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 關(guān)于ElementUI el-table 鼠標(biāo)滾動失靈的問題及解決辦法
- ElementUI實現(xiàn)el-table行列合并的操作步驟
- ElementUI動態(tài)渲染el-table的實現(xiàn)過程
- elementui實現(xiàn)表格(el-table)默認(rèn)選中功能
- ElementUI?el-table?樹形數(shù)據(jù)的懶加載的實現(xiàn)
- vue2+elementui的el-table固定列會遮住橫向滾動條及錯位問題解決方案
- elementui?el-table底層背景色修改簡單方法
- elementui el-table中如何給表頭 el-table-column 加一個鼠標(biāo)移入提示說明
相關(guān)文章
Babel自動生成Attribute文檔實現(xiàn)詳解
這篇文章主要為大家介紹了Babel自動生成Attribute文檔實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
vue+elementUI實現(xiàn)內(nèi)嵌table的方法示例
本文主要介紹了vue+elementUI實現(xiàn)內(nèi)嵌table的方法示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12
Vue?element-ui表格內(nèi)嵌進(jìn)度條功能實現(xiàn)方法
Element-Ul是餓了么前端團(tuán)隊推出的一款基于Vue.js 2.0 的桌面端UI框架,下面這篇文章主要給大家介紹了關(guān)于Vue?element-ui表格內(nèi)嵌進(jìn)度條功能的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
使用Element的InfiniteScroll 無限滾動組件報錯的解決
這篇文章主要介紹了使用Element的InfiniteScroll 無限滾動組件報錯的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

