element-UI(v2.4.9)table性能問題淺談

最近在瀏覽項目時無意中發(fā)現(xiàn)負責的模塊在滾動時會出現(xiàn)些許卡頓。

通過chromeperformance工具進行對比測試發(fā)現(xiàn):

  1. 鼠標放在滾動條上密强,即不再頁面之內時,用滾輪進行滾動蜗元,無明顯異常或渤;
  2. 鼠標放在table組件上時,用滾輪滾動奕扣,感覺到了卡頓薪鹦,見下圖;
    performance

從上圖可以發(fā)現(xiàn),在某些時間段內幀數(shù)極低池磁,同時火焰圖上可以發(fā)現(xiàn)于此同時在執(zhí)行mouseenter事件的函數(shù)奔害,綜上推測源頭應該是鼠標移動的相關事件,這個鼠標事件本身耗時不多地熄,但是觸發(fā)了VueupdateComponent华临。

同時使用Vue官方插件,它在新版同樣提供了性能測試功能:

Component render

Frames per second

可以注意到端考,ElTableColumnupdateRender觸發(fā)了非常多次雅潭,雖然每次時間不長,但是集合起來很多却特。
同時cell-mouse-enter在一秒內觸發(fā)多次扶供。


打開v2.4.9的element-UI源代碼,找到了ElemeFE/element/v2.4.9/packages/table/src/table-body.js這個文件裂明,里面赫然寫著

...
handleCellMouseEnter(event, row) {
        ...
        const tooltip = this.$refs.tooltip;
        // TODO 會引起整個 Table 的重新渲染椿浓,需要優(yōu)化
        this.tooltipContent = cell.innerText || cell.textContent;
        tooltip.referenceElm = cell;
        ...
}
...

相關的issue,我推測是由于餓了么框架在鼠標滑過單元格時漾岳,為了顯示tooltips,觸發(fā)了數(shù)據(jù)更新粉寞,特別是在表格中有計算的值會導致頁面更慢尼荆。

解決方案:

  1. 升級elementui到v2.6.0以上的版本;
  2. 不在表格中使用計算的屬性用來展示可緩解問題唧垦;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末捅儒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子振亮,更是在濱河造成了極大的恐慌巧还,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坊秸,死亡現(xiàn)場離奇詭異麸祷,居然都是意外死亡,警方通過查閱死者的電腦和手機褒搔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門阶牍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人星瘾,你說我怎么就攤上這事走孽。” “怎么了琳状?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵磕瓷,是天一觀的道長。 經(jīng)常有香客問我,道長困食,這世上最難降的妖魔是什么边翁? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮陷舅,結果婚禮上倒彰,老公的妹妹穿的比我還像新娘。我一直安慰自己莱睁,他們只是感情好待讳,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仰剿,像睡著了一般创淡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上南吮,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天琳彩,我揣著相機與錄音,去河邊找鬼部凑。 笑死露乏,一個胖子當著我的面吹牛,可吹牛的內容都是我干的涂邀。 我是一名探鬼主播瘟仿,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼比勉!你這毒婦竟也來了劳较?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤浩聋,失蹤者是張志新(化名)和其女友劉穎观蜗,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衣洁,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡墓捻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坊夫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毙替。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖践樱,靈堂內的尸體忽然破棺而出厂画,到底是詐尸還是另有隱情,我是刑警寧澤拷邢,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布袱院,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏忽洛。R本人自食惡果不足惜腻惠,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望欲虚。 院中可真熱鬧集灌,春花似錦、人聲如沸复哆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梯找。三九已至唆阿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锈锤,已是汗流浹背驯鳖。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留久免,地道東北人浅辙。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像阎姥,于是被迫代替她去往敵國和親记舆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內容

  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的泊愧。 ??事件伊磺,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,500評論 1 11
  • 本節(jié)介紹各種常見的瀏覽器事件。 鼠標事件 鼠標事件指與鼠標相關的事件删咱,主要有以下一些屑埋。 click 事件,dblc...
    許先生__閱讀 2,446評論 0 4
  • Dom事件 事件是一種異步編程的實現(xiàn)方式痰滋,本質上是程序各個組成部分之間的通信摘能。DOM支持大量的事件 (一) Eve...
    woow_wu7閱讀 1,778評論 0 1
  • 基于Vue的一些資料 內容 UI組件 開發(fā)框架 實用庫 服務端 輔助工具 應用實例 Demo示例 element★...
    嘗了又嘗閱讀 1,156評論 0 1
  • UI組件 element - 餓了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的組...
    魯大師666閱讀 43,407評論 5 97