偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一個超冷門的 Vue3 內置組件,幫我優(yōu)化了66%的性能!

開發(fā) 前端
最近項目中有一個頁面,是之前的老頁面,頁面中的內容其實就是一個 Tabs 組件,有三個 Tab,分別展示不同的內容,但是也有共同內容,那就是共同都有一個一個報表組件

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~

背景

最近項目中有一個頁面,是之前的老頁面,頁面中的內容其實就是一個 Tabs 組件,有三個 Tab,分別展示不同的內容,但是也有共同內容,那就是共同都有一個一個報表組件

圖片圖片

下面是大致的代碼展示如下,為了方便大家閱讀嗎,我把代碼簡化了

圖片圖片

Chart.vue中會進行大量的請求,這里我就直接簡單模擬一下了

圖片圖片

但是當我閱讀到這一段舊代碼時,我就覺得不太妙,這代碼這么寫,顯然是沒有考慮到性能問題,我們可以切換 Tab1 -> Tab2 -> Tab3 ,會發(fā)現(xiàn) Chart.vue 請求了三次?。?!

圖片圖片

但是其實只需要請求一次就夠了,因為其實都是一樣的數(shù)據(jù)、一樣的組件,并且 Chart.vue 內部的請求其實是很多個的,這樣就大大浪費了瀏覽器資源

改進?

其實很多人第一時間就是想到了,我們可以只請求一次,然后讓這三個 Chart 共用同一份數(shù)據(jù),這樣做就能保證只請求一次了

確實,這樣做大大提升了性能,大致的代碼如下,也就是把請求放在 Index 中去做,然后把數(shù)據(jù)傳給三個 Chart

圖片圖片

Chart 中只需要接收,并渲染即可

圖片圖片

現(xiàn)在切換 Tab1 -> Tab2 -> Tab3,發(fā)現(xiàn)確實只請求了一次了,這對于這個頁面,簡直是很大的提升!

圖片圖片

結束了嗎?

其實 Chart 內部拿到數(shù)據(jù)之后,會拿著數(shù)據(jù)去渲染很多的東西(這里我簡化了而已,其實很多的)。

剛剛我們只是保證了請求是一次,但是我們并沒有保證渲染是一次哦~我們可以給 Chart 的 onMounted 中加個打印

圖片圖片

切換 Tab1 -> Tab2 -> Tab3,可以看到總共渲染了三次,這其實也降低了頁面的性能,理想是只渲染一次即可

圖片圖片

巧妙使用 Teleport

也就是,我需要做到只渲染一次 Chart,但是需要渲染到不同的三個 Tab 中去~

那就只能是動態(tài)地去渲染了,根據(jù)選擇不同的 Tab,去決定 Chart 渲染到哪個 Tab 下了

這時候我就想到了 Teleport 了,這是一個 Vue3 提供的 全局組件,類似于一個傳送門,能把一個 DOM 節(jié)點渲染到另一個 DOM 節(jié)點上

改進后的代碼如下

圖片圖片

現(xiàn)在切換 Tab1 -> Tab2 -> Tab3,可以看到

  • 請求只一次
  • 渲染只一次

真是太妙了?。。?/p>

圖片 圖片

責任編輯:武曉燕 來源: 前端之神
相關推薦

2022-09-20 11:00:14

Vue3滾動組件

2024-07-30 08:59:22

2024-12-01 00:52:04

2024-01-16 12:46:00

Vue3API開發(fā)

2020-11-12 08:32:14

Vue3模板優(yōu)化

2022-07-18 10:43:12

項目TienChinJava

2024-08-12 08:33:05

2020-12-01 08:34:31

Vue3組件實踐

2024-01-22 13:15:00

2024-01-25 09:09:00

fsp幀數(shù)游戲

2011-05-03 10:17:25

CSS

2025-05-06 09:35:00

2021-05-18 07:51:37

Suspense組件Vue3

2025-06-24 08:20:00

編碼Vue3開發(fā)

2023-04-02 10:06:24

組件vue3sign2.

2021-01-15 05:16:37

Vue3開源代碼量

2024-08-12 09:28:02

Vue3項目技巧

2025-05-13 08:20:00

Vue3前端動效組件庫

2024-08-13 09:26:07

2023-04-27 11:07:24

Setup語法糖Vue3
點贊
收藏

51CTO技術棧公眾號