相信很多人在使用element el-tree、el-table組件加載數據前會顯示一個“ 暫無數據 ”,體驗很不友好,有沒有辦法處理不顯示呢?答案是:有的。廢話不多說直接上代碼解說:
<!--el-tree "暫無數據" 不顯示處理-->
<template> <el-tree :empty-text="emptyText" :expand-on-click-node="false" :props="defaultProps" :load="loadNode" node-key="id" lazy> <div class="custom-tree-node" slot-scope="{ node, data }"> <!--節點渲染--> </div> </el-tree> </template> <script> export default { data() { return { emptyText:"", } },
//* 利用el-tree 自帶的empty-text屬性綁定一個初始化空值,當拿到tree數據時判斷數據長度,當數據長度為0時設置emptyText值為"暫無數據"即可 </script>
<!--el-table "暫無數據" 不顯示處理--> <template> <el-table :data="tableData" style="width: 100%"> <template slot="empty"> <p>{{dataText}}</p> </template> <el-table-column prop="date" label="日期" width="180"></el-table-column> <el-table-column prop="name" label="姓名" width="180"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> </template> data() { return { tableData: [], dataText: "" //進去頁面先讓字樣為空 }; }, //請求數據 goodsList() { //先將變量清空 this.dataText = ""; this.$request( this.$config.baseApi + "/user/address/inde", "get" ).then(res => { if (res.code === 200) { this.tableData = res.data.content; // 當請求后台,數據為空時,再讓頁面顯示暫無數據 if (this.tableData.length === 0) { this.dataText = "暫無數據"; } } }); }