elementui如何解決el-table重復寫loading問題
問題
項目中使用 elementui
開發(fā)表格的小伙伴知道,給 el-table
添加加載動畫一般都是用 v-loading
指令,同時組建中添加 loading
變量來控制。
可是當表格越來越多時,每次都必須加一個 loading 變量同時在請求數據的方法中必須耦合 loading 的控制邏輯。
太多的重復工作,既降低效率,也使得代碼難于維護。
解決方法
使用 Mixin + Proxy
- 第一步,創(chuàng)建 loading.js 作為 mixin,使用 Proxy 代理請求數據的方法
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>
在線效果預覽
總結
通過使用 loading.js,我們就能一勞永逸地從重復的寫 loading 工作中解脫出來,同時避免寫錯寫漏,代碼的健壯性和可維護性也變高了。
對 vue2 的 mixin 或 Proxy 的知識不太了解的小伙伴,可以參考下面的官方文檔。
MDN文檔:使用 Proxy 代理方法 handler.apply()
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 關于ElementUI el-table 鼠標滾動失靈的問題及解決辦法
- ElementUI實現(xiàn)el-table行列合并的操作步驟
- ElementUI動態(tài)渲染el-table的實現(xiàn)過程
- elementui實現(xiàn)表格(el-table)默認選中功能
- ElementUI?el-table?樹形數據的懶加載的實現(xiàn)
- vue2+elementui的el-table固定列會遮住橫向滾動條及錯位問題解決方案
- elementui?el-table底層背景色修改簡單方法
- elementui el-table中如何給表頭 el-table-column 加一個鼠標移入提示說明
相關文章
VUE頁面中通過雙擊實現(xiàn)復制表格中內容的示例代碼
這篇文章主要介紹了VUE頁面中通過雙擊實現(xiàn)復制表格中內容,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Vue使用 onMounted 確保在組件掛載后執(zhí)行異步操作示例詳解
在 Vue.js 或其他類似框架中,使用 onMounted 是為了確保在組件掛載后執(zhí)行異步操作,這篇文章主要介紹了Vue使用onMounted確保在組件掛載后執(zhí)行異步操作,需要的朋友可以參考下2023-06-06vue實現(xiàn)對highlight-current-row方式整行選中后修改默認背景顏色
這篇文章主要介紹了vue實現(xiàn)對highlight-current-row方式整行選中后修改默認背景顏色方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11