91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用vue for時為什么要key的原因

發布時間:2021-04-24 18:02:16 來源:億速云 閱讀:425 作者:小新 欄目:web開發

這篇文章主要介紹使用vue for時為什么要key的原因,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

為什么要使用Vue

Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創建可維護性和可測試性更強的代碼庫,Vue允許可以將一個網頁分割成可復用的組件,每個組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網頁中相應的地方,所以越來越多的前端開發者使用vue。

一.diff算法

修改渲染真實的dom會引起整個dom樹的重繪和重排。diff算法可以幫助我們只對我們想要修改的部分進行更新而不會引起整個dom樹的重繪和重排。 我們先根據dom生成virtual DOM,當virtual Dom上的某個dom節點數據改變后會生成一個新的Vnode.將新生成的Vnode和oldVnode做對比。發現有修改的地方就直接渲染到真實的dom樹上。

diff算法一邊比較新舊節點的區別一邊在真實的dom樹上打補丁

二.key的作用

我個人覺得key的作用就是為了快速的找到新節點對應的舊節點。key是給每一個vnode唯一的id,可以依靠key,更準確, 更快的拿到oldVnode中對應的vnode節點。但不使用key時代碼也可以運行但是會報warning.為什么呢。

三.不使用key時的執行

例:不使用key 一個數組arr=['1','2','3','4','5','6']

<view v-for='arr'>
    {{item}}
  </view>

上面代碼會生成6個div每個div對應的arr中的數字。現在我們將arr變成[0, 1, 2, 3, 7, 8, 9]。更新渲染的步驟時這樣的原先div中的1變成0 2變成1以此類推最后新增一個div內容為9。 Vue會通過改變原來元素的內容和增加/減少元素來完成這個改變,因為沒有key屬性,Vue無法跟蹤每個節點,只能通過這樣的方法來完成變更。

四.使用key時

例:numbers為[1, 2, 3, 7, 8, 9]

<div v-for="(num, index) in numbers" :key="index">
   {{num}}
  </div>

變成了[0, 1, 2, 3, 7,8,9]新增一個

元素,它的內容為0,并將它插入原先內容為1的元素之前。 在有了key屬性之后,Vue會記住元素們的順序,并根據這個順序在適當的位置插入/刪除元素來完成更新,這種方法比沒有key屬性時的就地復用策略效率更高。 總體來說,當使用列表渲染時,永遠添加key屬性,這樣可以提高列表渲染的效率,提高了頁面的性能。

以上是“使用vue for時為什么要key的原因”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江油市| 前郭尔| 桃园县| 咸丰县| 武穴市| 同江市| 额济纳旗| 封开县| 台东市| 汕尾市| 闻喜县| 三穗县| 吉木萨尔县| 海宁市| 丰都县| 石河子市| 牙克石市| 兴国县| 县级市| 临江市| 安庆市| 亳州市| 建阳市| 台州市| 准格尔旗| 和林格尔县| 穆棱市| 南丰县| 孙吴县| 喀喇| 昌都县| 长泰县| 永宁县| 广汉市| 敖汉旗| 和平县| 贡觉县| 商都县| 白玉县| 西乌| 铁岭县|