前端會(huì)遇到許多數(shù)據(jù)處理的情況,包括后端給的數(shù)據(jù)不符合預(yù)期,或者缺少某些重要數(shù)據(jù)的時(shí)候,如果可行前端也可以通過(guò)計(jì)算和處理數(shù)據(jù)彌補(bǔ)這些不足,尤其是后端不能靈活的處理所需數(shù)據(jù)的時(shí)候。
之前遇到了一個(gè)問(wèn)題,有一個(gè)頁(yè)面的數(shù)據(jù)非常的多,大概1000條左右,而后端沒(méi)有傳遞條碼和頁(yè)數(shù)返回相應(yīng)的內(nèi)容的時(shí)候,前端同時(shí)展示出來(lái)會(huì)導(dǎo)致頁(yè)面卡頓,這里我們就可以通過(guò)計(jì)算,實(shí)現(xiàn)前端自行分頁(yè)。
這里我們使用element的分頁(yè),屬性如下page-size(每頁(yè)顯示數(shù)),current-page(當(dāng)前頁(yè)數(shù)),total(總頁(yè)數(shù)),我們使用的方法為slice(),w3c對(duì)他的解釋如下:簡(jiǎn)單的說(shuō)就是截取數(shù)組。
實(shí)現(xiàn)思路為:當(dāng)獲取到巨量數(shù)據(jù)的時(shí)候,不要展示,而是通過(guò)某個(gè)字段存儲(chǔ)起來(lái),展示的僅僅為:page-size(每頁(yè)顯示數(shù))* current-page(當(dāng)前頁(yè)數(shù)),每當(dāng)需要進(jìn)行分頁(yè)的時(shí)候,重新計(jì)算并通過(guò)截取數(shù)組來(lái)展示新的類(lèi)目。需要注意,我們的數(shù)據(jù)是從0-10開(kāi)始的,但是頁(yè)數(shù)是從1開(kāi)始的,我們需要給這個(gè)頁(yè)數(shù)-1,否則初始就是從10開(kāi)始了。
說(shuō)到slice,其實(shí)還有另一種截取方法splice,不過(guò)這個(gè)方法主要用于刪除元素,刪除除了需要展示頁(yè)面數(shù)據(jù)的其他數(shù)據(jù),不過(guò)相比slice,這個(gè)方法有點(diǎn)本末倒置了。
了解更多vue知識(shí)點(diǎn)擊這里。