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

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

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

相信大家都有做過這類的后臺管理系統。

圖片圖片

我們團隊也有類似于這樣的后臺管理系統平臺,且當用戶切換到某一個頁面時,這個頁面都得去請求最新的數據,呈現出來~

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

圖片圖片

那應該怎么去優化呢?很多人第一時間想到了防抖,但是我想說的是:一般的防抖還真防不??!

一般的防抖

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

圖片圖片

我們用一個小案例來演練一下,我準備四個文件,Index.vue、Tab1.vue、Tab2.vue、Tab3.vue

Tab1.vue

圖片圖片

Tab2.vue

圖片圖片

Tab3.vue

圖片圖片

Index.vue

圖片圖片

我們只需要在 Index.vue 中監聽 Tab 的切換,然后獲取對應的組件實例,去執行它們的 init 方法,就可以做到每次切換 Tab 都能去請求獲取最新的數據

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

現在我們切換 Tab,會發現每切換一次就去運行請求一次,這顯然違背了我們的期望

圖片圖片

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

圖片圖片

現在我同樣是頻繁切換,但是最終發起請求的只有一次,也就是用戶最終跳轉到的 Tab。

圖片圖片

這就是一般的防抖的應用場景。

進階版防抖

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

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

圖片圖片

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

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

Tab1.vue

圖片圖片

Tab2.vue

圖片圖片

Tab3.vue

圖片圖片

Index.vue

圖片圖片

我們切換 Tab 時,可以發現每個 Tab 的請求只會發起一次,因為 onMounted 只會執行一次

圖片圖片

但是我們想要的是每次切換 Tab 之后,每個頁面都要去重新發起請求,那應該怎么做呢?

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

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

圖片圖片

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

圖片圖片

接著在 Index.vue 中需要去監聽 Tab 變化,并觸發 changeActiveKey

圖片圖片

現在切換 Tab 時,每次都會觸發請求的起了。

圖片圖片

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

圖片圖片

現在我同樣是頻繁切換,但是最終發起請求的只有一次,也就是用戶最終跳轉到的 Tab

圖片 圖片

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

2020-11-23 08:16:51

線上系統優化

2025-03-20 12:33:36

2019-11-01 14:00:58

前端性能優化代碼

2020-10-16 09:00:12

前端開發技術

2022-11-16 12:03:13

性能優化前端

2022-05-17 09:02:30

前端性能優化

2020-10-16 10:40:39

前端性能可視化

2021-07-05 14:55:28

前端優化圖片

2022-03-02 11:13:50

Web前端開發

2012-07-13 09:58:06

WEBWEB前端性能優化

2023-04-10 11:18:38

前端性能優化

2021-02-02 13:45:31

Vue代碼前端

2012-01-10 16:22:25

Web

2013-01-22 15:27:23

WebWeb前端

2020-03-09 16:43:06

腳本語言瀏覽器JavaScript

2022-01-09 16:45:36

前端性能優化編程

2020-08-24 07:12:17

前端CRP性能優化

2023-12-14 17:21:28

前端性能優化

2022-09-13 12:56:28

前端優化

2019-07-29 10:39:39

前端性能優化緩存
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.精品国产 | 99爱在线观看 | 人人看人人干 | av手机在线看 | 成人国产午夜在线观看 | www.久久久.com | www.788.com色淫免费 | 美日韩中文字幕 | 99久久婷婷国产综合精品电影 | 色综合久久久 | 精品国产乱码久久久久久老虎 | 国产在线精品一区二区三区 | 天天拍天天射 | 羞羞视频网站免费观看 | 日韩精品一区二区久久 | 亚洲欧美激情精品一区二区 | 欧美日韩在线精品 | 成人精品一区二区 | 成人福利网 | 精品在线观看一区二区 | 视频一区二区在线观看 | 成人区精品一区二区婷婷 | 国产一区二区av | 色在线免费视频 | 精品一区二区三区在线播放 | 亚洲视频一区二区三区 | 一区二区三区视频在线免费观看 | 久久久久国产一区二区 | 国产伦一区二区三区久久 | 亚洲成人精品一区二区 | 91九色视频在线 | 日韩欧美在线观看一区 | 欧美综合一区二区三区 | 色橹橹欧美在线观看视频高清 | 在线视频国产一区 | www.婷婷| 亚洲精品在线观看网站 | 美女一级毛片 | 国产日韩一区 | 一区二区三区精品视频 | 午夜激情国产 |