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

Vue 推出了新特性 useId,能提高多少開發(fā)體驗?

開發(fā) 前端
大家都知道,在?Vue?中使用?v-for?去循環(huán)遍歷一個列表的時候,需要給每一個遍歷項加上一個唯一?key?,確保 DOM 更新的時候能得到一定的性能提升,我們可以使用?useID?來生成一個唯一?key。

在 Vue3.5 這個版本中,新增了 useId 這一個 API,它的功能是用來生成一個 唯一的ID,為什么說它生成的 ID 是唯一的呢?我們可以來看看 useID 的源碼,你就知道了。

其實原理很簡單,就是調(diào)用 getCurrentInstance 這個,這個 API 會返回當前 Vue 實例的信息對象,而這個信息對象身上有一個 ids 的數(shù)組,而 useId 就是根據(jù)這個數(shù)組去生成唯一 ID 的。

圖片圖片

  • appContext.config.idPrefix: 這是可全局配置的 ID 前綴,如果你不配置,那就默認是 v。
  • ids[0] + ids[1]++: 由唯一的 ids[0] 和遞增的 ids[1] 來實現(xiàn)同實例內(nèi)與不同實例時間的唯一性。

想要設(shè)置 appContext.config.idPrefix 可以在 main.ts 中去設(shè)置。

圖片圖片

接下來講一下 useId 都有哪些比較實用且常用的場景吧!

表單對應(yīng)標識

表單中,我們會使用 label 來做表單項的展示文本,我們想要點擊這個展示文本,能自動聚焦到表單項上,那么我們可以同時給 label、表單項標簽 設(shè)置上一個一樣的 ID。

圖片圖片

圖片圖片

v-for 唯一 key

大家都知道,在 Vue 中使用 v-for 去循環(huán)遍歷一個列表的時候,需要給每一個遍歷項加上一個唯一 key ,確保 DOM 更新的時候能得到一定的性能提升,我們可以使用 useID 來生成一個唯一 key。

圖片圖片

圖片圖片

服務(wù)端渲染保持唯一性

使用 服務(wù)端渲染(SSR) 的應(yīng)用里,頁面的 HTML 是由服務(wù)器生成的,隨后被傳送到客戶端的瀏覽器。當瀏覽器接收到這些 HTML 內(nèi)容后,會將其轉(zhuǎn)變?yōu)橐粋€可交互的頁面。然而,倘若服務(wù)器端與客戶端生成的 HTML 中具有相同的 ID,在客戶端進行 激活(hydrate) 操作時,就有可能出現(xiàn)問題。因為客戶端可能會試圖對一個已經(jīng)被服務(wù)器端渲染好的 DOM元 素進行操作,這樣就會引發(fā)潛在的沖突或者錯誤。

可以通過一個小例子來說明這個問題。

服務(wù)端代碼

圖片圖片

客戶端代碼

圖片圖片

在這個案例中,無論是服務(wù)端還是客戶端,我們都使用了 createSSRApp(App) 來創(chuàng)建應(yīng)用實例。如果我們在 App.vue 中使用了 useId 來生成 ID,那么這些 ID 將在服務(wù)端渲染時生成一次,并在客戶端激活時再次使用相同的 ID。

App.vue

圖片圖片

在 App.vue 組件里,我們借助 useId為 <input> 元素創(chuàng)建了一個獨一無二的 ID。此 ID 在服務(wù)端渲染階段生成,并被納入發(fā)送至客戶端的HTML之中。當客戶端接收到該HTML并展開激活流程時,鑒于useId所生成的ID在服務(wù)端和客戶端保持一致,客戶端便能準確地把 <label> 元素與 <input> 元素相關(guān)聯(lián),從而避免出現(xiàn) ID 沖突的情況。

倘若不使用 useId,而是采用 Math.random() 或者 Date.now() 來生成 ID,那么服務(wù)端和客戶端有可能生成不一樣的ID。這就會致使客戶端在激活時無法正確地將 <label> 與 <input> 關(guān)聯(lián)起來,因為二者的 ID 存在差異。這種情況或許會致使表單元素出現(xiàn)行為異常,比如點擊 <label> 時,<input> 卻不能獲取焦點。

組件庫中 ID 的生成

在運用 Element Plus 等組件庫開展 SSR 開發(fā)的過程中,為防止出現(xiàn) hydration 錯誤,務(wù)必要保證服務(wù)器端和客戶端所生成的 ID 是一致的。向 Vue 中注入 ID_injection_key 這一操作,能夠確保 Element Plus 所生成的 ID 在 SSR 里具備唯一性。

圖片圖片

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

2022-05-02 14:53:59

Plasma桌面環(huán)境KD

2017-03-08 07:52:24

科技新聞早報

2009-05-20 10:21:43

亞馬遜AmazonEC2

2011-09-28 13:39:44

Ubuntu

2021-08-04 05:24:59

Windows 操作系統(tǒng)微軟

2012-08-24 09:23:00

Windows Log

2013-10-28 14:05:05

StartOSStartOS 6.0

2025-05-15 08:10:00

Vue 3.5Vue

2025-02-11 08:00:00

閉包JavaScript開發(fā)

2024-12-20 16:31:34

2020-11-04 11:05:38

JavaScript新特性前端

2011-09-30 09:47:15

GNOME 3.2

2017-07-05 08:40:50

MongoDBStitch后端

2009-01-05 18:15:48

服務(wù)器虛擬化數(shù)據(jù)中心

2021-03-06 07:36:21

小愛同學(xué)Windows10應(yīng)用

2010-09-01 21:20:28

跳線布線西蒙

2017-03-29 20:30:03

2025-01-07 13:48:57

2021-10-14 09:43:59

人工智能AI機器人

2014-10-20 13:57:59

JavaFX 8Java 8
點贊
收藏

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

主站蜘蛛池模板: 欧美久久一区二区三区 | 欧美一级免费看 | 久久男人天堂 | av中文天堂 | 欧美视频免费在线 | 久久综合一区 | 日韩亚洲一区二区 | av网站免费 | 久久精品二区亚洲w码 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 成人免费淫片aa视频免费 | 三级av在线 | 国产精品久久久久久久免费观看 | 国产精品夜色一区二区三区 | 久久久久国产一区二区三区四区 | 亚洲精品99 | 丁香综合 | 亚洲人成人一区二区在线观看 | 亚洲 欧美 日韩在线 | 中文精品久久 | 日韩黄色av | 欧美videosex性极品hd | 久久激情五月丁香伊人 | 91视频在线 | 久久久亚洲一区 | 成年精品| av首页在线 | 草草视频在线免费观看 | 日韩免费视频一区二区 | 中文字幕一区在线观看视频 | 91精品国产综合久久久久久丝袜 | 情侣黄网站免费看 | 精品国产91乱码一区二区三区 | 欧美在线一区二区三区 | 国产日韩欧美电影 | 蜜臀网| 日本成年免费网站 | 欧美视频 亚洲视频 | 日本不卡一区二区三区在线观看 | 亚洲一区二区三区视频 | 亚洲国产精品一区二区第一页 |