關於element元件中分頁的一些個人思路
最近在用element,用到了它的分頁這個元件,我這邊的情況是,我前端請求資料,資料大概有20個的樣子,把資料存在data的一個數組裡面,用一個v-for迴圈遍歷陣列內容,並用div裝起來,這樣20個數據就從上往下排列了出來,但是我想使用分頁,一個分頁只顯示5個數據,那麼就有4頁,這個效果怎麼做到呢?
我本人也是思考了一下,主要用到裡面的兩個屬性一個方法,屬性是
:page-size="5"
:total="sites[0].allPages">
sites是後臺返回的json資料,且後臺在陣列下標為0返回的是我的一個總長度,也就是20,我這邊迴圈是用了陣列的一個slice方法讓其從1開始迴圈,element會自動根據你的size和total生成總的
頁數,先貼我的程式碼
handleCurrentChange(val) {
var that =this;
$.ajax({
url: 'http://113.250.159.232:8081/Title/PrePages',
type: 'post',
contentType:'application/json;charset=UTF-8',
dataType: 'json',
data:JSON.stringify(val),
success: function (data) {
var json =data;
that.sites=json;
that.number=val;
},
error: function (data) {
console.log(data);
}
});
},
這裡這個方法是當你頁數變化時,也就是你點1,2,3,4頁時執行的函式,裡面的引數val是你當前點選哪個頁數的數字,我的思路是我在頁數變化時傳送一個ajax給後臺,並把val值傳給後臺
後臺根據val值判斷傳回來的資料是哪些,但是一個bug出來了,就是這個函式是必須你點選頁面角標變化時才執行,也就是我一開始頁面載入完後我什麼都看不到,但是我點到第二頁後,資料便出來了,這個時候可以在mounted函式中一個ajax請求,並傳一個數字1,因為點到第二頁才生效,第一頁相當於後臺沒有得到傳過去的資料,所以沒做處理,因為我在頁面載入完後自動是第一頁,那麼我把1傳給後臺,後臺再響應並傳回原本屬於1的資料,這樣就完成了。但是效能方面還沒有考慮,需要在後面測試的時候才知道,這也只是我本人的一個思路,希望有更好的辦法的同學多多幫幫我呀哈哈哈