成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用戶自己制造了性能問題,還怪我前端沒做優(yōu)化?

開發(fā) 前端
如果是比較普通的場景還是可以用用一般防抖的,就比如某一個(gè)頁面內(nèi)的 Tab 切換,因?yàn)檫@一類的 Tab 切換說到底就是在同一個(gè)頁面組件下去寫代碼邏輯,所以也比較好控制這些 Tab 切換后的防抖處理。

相信大家都有做過這類的后臺管理系統(tǒng)。

圖片圖片

我們團(tuán)隊(duì)也有類似于這樣的后臺管理系統(tǒng)平臺,且當(dāng)用戶切換到某一個(gè)頁面時(shí),這個(gè)頁面都得去請求最新的數(shù)據(jù),呈現(xiàn)出來~

這就會造成一個(gè)問題:當(dāng)用戶頻繁切換 Tab 切換的時(shí)候,就會不斷地去發(fā)起請求,進(jìn)行渲染呈現(xiàn),但是其實(shí)正在有意義的只有用戶最后一次切換到的頁面,我服了,真有人會這么頻繁切換嗎?不會是用戶自己切著玩吧?

圖片圖片

那應(yīng)該怎么去優(yōu)化呢?很多人第一時(shí)間想到了防抖,但是我想說的是:一般的防抖還真防不住!

一般的防抖

如果是比較普通的場景還是可以用用一般防抖的,就比如某一個(gè)頁面內(nèi)的 Tab 切換,因?yàn)檫@一類的 Tab 切換說到底就是在同一個(gè)頁面組件下去寫代碼邏輯,所以也比較好控制這些 Tab 切換后的防抖處理

圖片圖片

我們用一個(gè)小案例來演練一下,我準(zhǔn)備四個(gè)文件,Index.vue、Tab1.vue、Tab2.vue、Tab3.vue

Tab1.vue

圖片圖片

Tab2.vue

圖片圖片

Tab3.vue

圖片圖片

Index.vue

圖片圖片

我們只需要在 Index.vue 中監(jiān)聽 Tab 的切換,然后獲取對應(yīng)的組件實(shí)例,去執(zhí)行它們的 init 方法,就可以做到每次切換 Tab 都能去請求獲取最新的數(shù)據(jù)

有人會問為啥不能直接將每個(gè)組件中的 init 寫在各自的 onMounted 中?我來回答一下吧,因?yàn)?nbsp;Tab 默認(rèn)會做頁面緩存,也就是只有第一次切換過去才會執(zhí)行 onMounted,往后都不會執(zhí)行了,這樣有助于提升性能,所以不能將 init 寫在 onMounted 中~

現(xiàn)在我們切換 Tab,會發(fā)現(xiàn)每切換一次就去運(yùn)行請求一次,這顯然違背了我們的期望

圖片圖片

所以我們可以直接給 onTabChange加上防抖,即可解決此問題。

圖片圖片

現(xiàn)在我同樣是頻繁切換,但是最終發(fā)起請求的只有一次,也就是用戶最終跳轉(zhuǎn)到的 Tab。

圖片圖片

這就是一般的防抖的應(yīng)用場景。

進(jìn)階版防抖

上面所說的一般的防抖只能適用于代碼邏輯相對于比較集中的場景。

但是如果是那種代碼邏輯比較分散的場景呢?比如后臺管理系統(tǒng)中,通過切換不同的 Tab 去切換不同的 路由頁面,且這些頁面都是經(jīng)過 keep-alive 處理過的,且每個(gè)頁面的請求邏輯都放在 onMounted 中。

圖片圖片

這些頁面都是一個(gè)個(gè)的文件夾管理的,代碼邏輯相對比較分散。

為了簡化場景,降低大家的閱讀成本,我還是用剛剛的代碼來模擬,還是 Index.vue、Tab1.vue、Tab2.vue、Tab3.vue。

Tab1.vue

圖片圖片

Tab2.vue

圖片圖片

Tab3.vue

圖片圖片

Index.vue

圖片圖片

我們切換 Tab 時(shí),可以發(fā)現(xiàn)每個(gè) Tab 的請求只會發(fā)起一次,因?yàn)?nbsp;onMounted 只會執(zhí)行一次

圖片圖片

但是我們想要的是每次切換 Tab 之后,每個(gè)頁面都要去重新發(fā)起請求,那應(yīng)該怎么做呢?

其實(shí)很簡單,我們只需要 “改造” 一下 onMounted 即可

我們新建一個(gè)useCustomMounted.ts ,使用 watch + nextTick 來取代 onMounted

圖片圖片

接著在Tab1.vue、Tab2.vue、Tab3.vue 中去使用這個(gè) onCustomMounted,這里我只貼出 Tab1.vue 的,其他兩個(gè) Tab 同理,我就不貼出來了

圖片圖片

接著在 Index.vue 中需要去監(jiān)聽 Tab 變化,并觸發(fā) changeActiveKey

圖片圖片

現(xiàn)在切換 Tab 時(shí),每次都會觸發(fā)請求的起了。

圖片圖片

接下來就要加上防抖了,只需要加在 changeActiveKey 上即可。

圖片圖片

現(xiàn)在我同樣是頻繁切換,但是最終發(fā)起請求的只有一次,也就是用戶最終跳轉(zhuǎn)到的 Tab

圖片 圖片

責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2020-11-23 08:16:51

線上系統(tǒng)優(yōu)化

2025-03-20 12:33:36

2019-11-01 14:00:58

前端性能優(yōu)化代碼

2020-10-16 09:00:12

前端開發(fā)技術(shù)

2022-05-17 09:02:30

前端性能優(yōu)化

2020-10-16 10:40:39

前端性能可視化

2022-11-16 12:03:13

性能優(yōu)化前端

2021-07-05 14:55:28

前端優(yōu)化圖片

2012-07-13 09:58:06

WEBWEB前端性能優(yōu)化

2022-03-02 11:13:50

Web前端開發(fā)

2023-04-10 11:18:38

前端性能優(yōu)化

2012-01-10 16:22:25

Web

2021-02-02 13:45:31

Vue代碼前端

2013-01-22 15:27:23

WebWeb前端

2020-03-09 16:43:06

腳本語言瀏覽器JavaScript

2022-01-09 16:45:36

前端性能優(yōu)化編程

2020-08-24 07:12:17

前端CRP性能優(yōu)化

2022-09-13 12:56:28

前端優(yōu)化

2023-12-14 17:21:28

前端性能優(yōu)化

2019-07-29 10:39:39

前端性能優(yōu)化緩存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品18hdxxxⅹ在线 | 久久久观看 | 亚洲一区二区在线 | xx性欧美肥妇精品久久久久久 | 在线一区二区三区 | 中文字幕国产一区 | 日操操夜操操 | www.操.com| 国产精品免费一区二区三区四区 | 91久久精品一区二区二区 | 毛片韩国 | 久久精品国产一区二区电影 | 成人国产精品免费观看 | 日韩精品在线播放 | 日操夜操| 精品欧美一区二区三区 | 中文二区 | 亚洲区一区二 | 欧美一级二级在线观看 | 亚洲福利在线视频 | 黄视频免费在线 | 免费黄色av网站 | 日本aa毛片a级毛片免费观看 | 亚洲精品视频在线 | 超碰在线免费公开 | 欧美综合在线观看 | 精品一区二区在线看 | 五十女人一级毛片 | 日韩欧美一级精品久久 | 国产视频久久久 | av影片在线 | 狠狠操狠狠操 | 久久久国产一区二区三区四区小说 | 麻豆精品国产91久久久久久 | 日韩三级电影在线看 | 日韩精品a在线观看图片 | 国产成人免费视频网站高清观看视频 | 在线免费看黄 | 亚洲国产欧美91 | 91精品欧美久久久久久久 | 午夜欧美|