ElementUi中el-table分頁效果

来源:https://www.cnblogs.com/jdWu-d/archive/2019/11/20/11896668.html
-Advertisement-
Play Games

現實的場景中很經常遇到表格el-table數據過多,為了更好的用戶體驗,所以我們需要用到分頁,一般分頁可以視數據量的大小可分為前端控制和後端控制。 先看下效果(已做脫敏處理) 圖1 前端el-table分頁效果 這裡就把ElementUi官方的例子進行修改來說明 <template> <el-tab ...


  現實的場景中很經常遇到表格el-table數據過多,為了更好的用戶體驗,所以我們需要用到分頁,一般分頁可以視數據量的大小可分為前端控制和後端控制。

  先看下效果(已做脫敏處理)

圖1 前端el-table分頁效果

這裡就把ElementUi官方的例子進行修改來說明

<template>
    <el-table
        :data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"
        :stripe="stripe"
        :current-page.sync="currentPage"
        style="width: 100%">
        <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>
    <div class="pagination">
        <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :page-sizes="[10, 15, 20]"
            :page-size="pagesize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total">
    </el-pagination>
</template> 
<script>
export default {
    data(){
        return{
            stripe:true,//是否為斑馬紋 table
            tableData: [],
            currentPage:1,
            pagesize:10,
            total:0,
        }
    },
    methods:{
        handleSizeChange(val) {
            this.pagesize=val;
        },
        handleCurrentChange(val) {
            this.currentPage = val;
        },
    }
}
<script>

  分頁的核心是tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)這一句代碼,利用了slice方法把數據源tableData進行分割,但實際上是請求了所有的數據,如圖2所示,然後實現前端假分頁顯示。

 

 圖2 實際tableData請求了所有的數據,共13條數據

  還有一種分頁的思想就是給後臺傳入如上的參數currentPage和pagesize的值,告訴後臺,我們需要[(currentPage-1)*pagesize,currentPage*pagesize]這一個區間的數據,讓後臺返回來。

  這兩種方法各有利弊,如果是前者前端控制分頁的方法,因為本質是請求了所有的數據,如果這個數據量非常大,涉及到了幾百,幾千甚至幾萬數據,第一頁的table數據載入的時間就會非常慢,因為它把後面的數據都拿過來了,用戶體驗非常不好,對記憶體空間也很不友好。明明只顯示了幾十條的數據,卻為此存了幾萬條的數據,就好比sql語句的select * from和select [需要的欄位] from一樣,明顯後者的效率會好些。但是它也是有好處的,好處就是如果在數據量小的情況下,第一頁table載入速度用戶也能接受的情況下,用戶之後點擊切換頁面按鈕或者直接跳轉到哪個頁面都不需要發起請求即可顯示出數據,速度非常快。

  而後者後端控制分頁的情況,每次切換頁面都得發起請求,畢竟魚和熊掌不可兼得,我們只能根據實際情況和用戶需求做調整。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 平時面試經常會遇到類似下麵的這種題,而且千變萬化,讓人一個頭兩個。示例這道題算是稍微有點難度的了,這種題考查的是JavaScript引擎執行代碼的步驟。 先上理論: (1)分析腳本的執行過程,也就是全局作用域下的代碼。 ①創建全局對象GO(window) ②載入腳本代碼 ③預編譯:依此找到var開頭 ...
  • 1. 如果所示,問題:“首頁”和“閑置”文字部分位於table中部 解決方法:需要取消vertical-align:middle屬性,將其設置為vertical-align:top,並將文本的高度改為整個table的高度 改正後最終的實現效果為: 明顯可以看到"首頁"和"閑置"文字到了table頂部 ...
  • 這邊因為業務的需求,覺得隨著產品中心以後需要按鈕的增多(圖1操作欄的效果),這樣會導致排版和按鈕過於冗長的問題,用戶體驗不佳,於是想到利用el-dropdown做一個下拉按鈕(圖1操作1欄的效果) 。 圖1 兩種按鈕效果 但是ElementUi官方文檔中的handleCommand方法只允許接入一個 ...
  • border 邊框css屬性 邊框顏色 border-color邊框樣式 border-style:solid (實線)dashed(虛線)預設為none邊框粗細 border-width:1px;預設是3pxborder的簡寫 border:border-width;border-style;bo ...
  • Map是ES6提供給我們的構造函數,本質上是鍵值對的集合。他和對象類似 特點:key對應value,key和value唯一,任何值都可以當屬性(包括對象)。但在Javascript的Object屬性和值構成的是”字元串-值“對,屬性只能是字元串,如果傳個對象字面量作為屬性名,那麼會預設把對象轉換成字 ...
  • 當viewBox屬性固定,預設修改svg標簽的寬高,svg都會按比例縮放 我們現在不想按比例縮放,需要svg撐滿整個畫面 這裡只需為svg標簽添加一個關鍵屬性:preserveAspectRatio 註意:經過驗證,通過js或jq方法添加該屬性時,需要區分大小寫 ...
  • css 預設樣式重置 1 @charset "utf-8"; 2 *{margin:0;padding:0;} 3 img {border:none; display:block;} 4 em,i{ font-style:normal;} 5 body, div, dl, dt, dd, ul, o ...
  • 遇到的問題 這兩天在開發一個病歷的對外展示頁面,設計稿上label是左右拉伸對齊的,顯示效果如下: 怎麼實現這種效果呢? 首先想到的是文字中間加空格,但是這種方式太low了,而且不太容易控制。網上查資料,發現用justify可以實現。 但是加上上述樣式後,文字依然沒有左右對齊。 justify為什麼 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...