Nuxt安裝導(dǎo)入pl-table的解決方案(千萬條數(shù)據(jù)滾動加載不卡頓)

這里我要感謝 pl-table的作者,引導(dǎo)我在NUXT下安裝成功。(pl-table版本:2.5.8)

2.4.6及以上版本api?https://github.com/livelyPeng/pl-table/wiki/Component-API-2.4.6及以上版本

2.3.6及以下版本api?https://github.com/livelyPeng/pl-table/wiki/component-api-2.3.6及以下版本

1.首先安裝 pl-table:cnpm install pl-table --save

2.在plugins文件下新建 plTable.js文件 (文件名隨意取)

3.在plTable.js下寫如下代碼:

import?Vue?from?'vue'

import?plTable?from?'pl-table'

import?'pl-table/themes/index.css'?//?引入樣式(必須引入),請查看webpack是否配置了url-loader對woff,ttf文件的引用,不配置會報錯哦

//?import?'pl-table/themes/plTableStyle.css'?//?默認(rèn)表格樣式很丑?引入這個樣式就可以好看啦(如果你不喜歡這個樣式,就不要引入,不引入就跟ele表格樣式一樣,這個樣式個人介意不要引入,因為會導(dǎo)致其他table和ele的樣式問題)

export?default(()=>{

????Vue.use(plTable);

})

你會發(fā)現(xiàn)pl-table 導(dǎo)入進(jìn)來會有個提示,本以為是沒有導(dǎo)入成功,說是ts問題,這邊直接忽略就行了。(如下圖)

4.在nuxt.config.js下引入 plTable ,這里主要注意的是 ssr設(shè)置成false。這樣我們的pl-table就配置成功啦。

5.千萬條數(shù)據(jù)完美呈現(xiàn)出來了,見下圖效果

這里將近拿到2000多條數(shù)據(jù),滾動效果很流暢,切換el-tabs也不會卡頓了。

需要注意的事項:pl-table主要是通過高度渲染表格頁面:


所以你只要在 pl-table標(biāo)簽里 引入 :auto-resize='true'? 這句話是關(guān)鍵

use-virtual是否開啟虛擬滾動 (解決大數(shù)據(jù)渲染卡頓問題)

row-height是設(shè)置表格高度的 默認(rèn)高度是60

datas是導(dǎo)入接口數(shù)據(jù) 必須是數(shù)組格式

這幾個屬性是 pl-table渲染表格的關(guān)鍵所在。

作者還在這里踩了二個大坑,當(dāng)刷新路由頁面時 報如下圖錯誤:

問題1:? 因為 頁面沒有渲染導(dǎo)致的,因為pl-table 的 ssr設(shè)置的是false 所以 組件沒辦法在服務(wù)器端渲染成功,所以我們只要在pl-table標(biāo)簽外添加 v-if 判斷一下數(shù)據(jù) 是否拿到,拿到后在渲染pl-table

問題2:我真的操碎了???提示說 在 setHeight里沒有找到?el-table__body的clientHeight的這個高度,所以導(dǎo)致pl-table不能渲染成功。

最后作者只能在自己頁面的父標(biāo)簽里 寫上 class = ‘el-table__body’ 關(guān)鍵標(biāo)簽必須有高度 這樣才解決了這個問題

希望看到的大神 有什么更好的辦法幫忙解決一下。

在此感謝pl-table的作者! 喜歡的小伙伴給個贊吧??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容