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

Vue3 的 Teleport 是個性能利器,為啥大家都死活不用?

開發(fā) 前端
很多人看到剛剛的優(yōu)化手段,就想著使用?鼠標(biāo)點擊坐標(biāo)定位?的方式去移動顏色選擇器,其實不需要,因為Vue3已經(jīng)為我們提供了一個現(xiàn)成的傳送門組件Teleport。

背景

最近有一個需求是需要做消息列表的顏色切換,大概頁面如下,通過顏色選擇器去切換前面消息文本的顏色。

圖片圖片

圖片圖片

后來產(chǎn)品說這個顏色選擇器的圖標(biāo)不好看,所以換了一個圖標(biāo)來顯示顏色選擇器,于是頁面變成了下面這樣的效果,我把原本的顏色切換的圖標(biāo)隱藏起來,換了另一個圖標(biāo)代替

圖片圖片

圖片圖片

滿屏都是

后面又有新的需求,消息可能會有很多,甚至鋪滿整個屏幕。

圖片圖片

圖片圖片

這會導(dǎo)致頁面非常卡,為啥呢?因為每一項就有一個顏色選擇器!太多顏色選擇器了,我們可以審查元素,發(fā)現(xiàn)顏色選擇器面板的 DOM 非常多?。?!

圖片圖片

怎么優(yōu)化呢?

其實就是因為顏色選擇器太多了才導(dǎo)致的卡頓,那么,我們只需要保證整個頁面只有一個顏色選擇器即可!

  • 第一步:先在頁面放一個顏色選擇器。
  • 第二步:當(dāng)點擊圖標(biāo)1時,將顏色選擇器移動到對應(yīng)位置。
  • 第三步:當(dāng)點擊圖標(biāo)2時,將顏色選擇器移動到對應(yīng)位置。
  • 第四步:以此類推。

圖片圖片

Teleport

很多人看到剛剛的優(yōu)化手段,就想著使用 鼠標(biāo)點擊坐標(biāo)定位 的方式去移動顏色選擇器,其實不需要,因為Vue3已經(jīng)為我們提供了一個現(xiàn)成的傳送門組件Teleport。

我們需要先封裝一個單例顏色選擇器,確保整個頁面只有這么一個,且使用 Teleport 將它包起來,并且他的圖標(biāo)是不可見的,這里渲染組件我們可以使用 h 方法。

圖片圖片

我們需要先將 Item.vue 中的顏色選擇器去掉,換成一個占位的地方,用來讓顏色選擇器傳送。

接著我們在 Index.vue 中去將這個 單例顏色選擇器 進行掛載。

圖片圖片

我們需要將 Item.vue 中的顏色選擇器去掉,換成一個占位的地方,用來讓顏色選擇器傳送,而這個占位的地方我們需要保證是獨一無二的,不然會造成傳送出錯,這里我使用了 lodash.uniqueId。

圖片圖片

現(xiàn)在我們可以看到,整個頁面只有一個顏色選擇器了,非常好,整個頁面瞬間變得不卡頓了?。?!

圖片

再來看看效果,發(fā)現(xiàn)符合我們的預(yù)期!

圖片

適用于多 Tab 切換

Teleport 還適用于很多場景的優(yōu)化,比如多 Tab 切換,但是每一個 Tab 都是顯示了同一個組件,這個時候你也可以使用 Teleport 去優(yōu)化。

示例盡量簡化,方便大家理解。

比如下面的例子,其實每一個 Tab 展示的都是同一個內(nèi)容。

圖片圖片

圖片圖片

我們可以使用 Teleport 將內(nèi)容包起來,并監(jiān)聽 Tab 的切換,進行動態(tài)傳送。

圖片圖片

結(jié)果也能達(dá)到預(yù)期效果。

圖片 圖片

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

2021-03-31 08:01:50

Vue3 Vue2 Vue3 Telepo

2020-12-01 08:34:31

Vue3組件實踐

2021-05-12 10:25:29

開發(fā)技能代碼

2023-04-27 11:07:24

Setup語法糖Vue3

2025-04-07 08:50:36

2023-11-29 09:05:59

Vue 3場景

2022-08-15 12:31:32

Vue3TypeScript

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2021-10-29 07:47:35

Vue 3teleport傳送門組件

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2024-08-13 09:26:07

2020-09-19 21:15:26

Composition

2025-02-03 16:24:20

2021-12-08 09:09:33

Vue 3 Computed Vue2

2024-01-04 08:38:21

Vue3API慎用

2025-02-17 08:58:06

2025-06-30 09:46:34

Vue3性能API

2020-11-12 08:32:14

Vue3模板優(yōu)化
點贊
收藏

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