最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用vue for時為什么要key【推薦】

 更新時間:2019年07月11日 16:46:34   作者:取名困難綜合癥  
很多朋友不明白在使用vue for時為什么要key,key的作用有哪些,在文中給大家詳細介紹,需要的朋友可以參考下

前言:

用vue框架寫前端代碼時經(jīng)常會用用到v-for這個方法,但使用此方法時vue推薦我們加上一個唯一標識key這是為什么呢?閱讀了網(wǎng)上各位大神的文章以及自己的一些理解對這個問題有了新的認識。所以記錄下來,若各位看官看到文章里面有錯誤的地方請指正一下。謝謝各位大佬。

一.diff算法

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

diff算法一邊比較新舊節(jié)點的區(qū)別一邊在真實的dom樹上打補丁

二.key的作用

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

三.不使用key時的執(zhí)行

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

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

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

四.使用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]新增一個

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

總結(jié)

以上所述是小編給大家介紹的使用vue for時為什么要key屬性,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 基于vue中keep-alive緩存問題的解決方法

    基于vue中keep-alive緩存問題的解決方法

    今天小編就為大家分享一篇基于vue中keep-alive緩存問題的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue實現(xiàn)div高度可拖拽

    vue實現(xiàn)div高度可拖拽

    這篇文章主要為大家詳細介紹了vue實現(xiàn)div高度可拖拽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue-cli基礎配置及webpack配置修改的完整步驟

    vue-cli基礎配置及webpack配置修改的完整步驟

    這篇文章主要給大家介紹了關(guān)于vue-cli基礎配置及webpack配置修改的完整步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用vue-cli具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-10-10
  • Vue項目中使用jsonp抓取跨域數(shù)據(jù)的方法

    Vue項目中使用jsonp抓取跨域數(shù)據(jù)的方法

    這篇文章主要介紹了Vue項目中使用jsonp抓取跨域數(shù)據(jù)的方法,本文通過實例代碼講解的非常詳細,需要的朋友可以參考下
    2019-11-11
  • 詳解在Vue中有條件地使用CSS類

    詳解在Vue中有條件地使用CSS類

    本篇文章主要介紹了詳解在Vue中有條件地使用CSS類,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue 路由緩存 路由嵌套 路由守衛(wèi) 監(jiān)聽物理返回操作

    vue 路由緩存 路由嵌套 路由守衛(wèi) 監(jiān)聽物理返回操作

    這篇文章主要介紹了vue 路由緩存 路由嵌套 路由守衛(wèi) 監(jiān)聽物理返回操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue watch關(guān)于對象內(nèi)的屬性監(jiān)聽

    vue watch關(guān)于對象內(nèi)的屬性監(jiān)聽

    這篇文章主要介紹了vue watch關(guān)于對象內(nèi)的屬性監(jiān)聽的相關(guān)知識,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-04-04
  • ElementUI如何修改el-cascader的默認樣式

    ElementUI如何修改el-cascader的默認樣式

    ElementUI 是一套ui組件庫,目前最新版本 react 和 vue 等主流框架都有支持。該庫默認主題色是天藍色,若用于項目開發(fā),難免遇到要需求修改其默認樣式的情況,這篇文章主要介紹了ElementUI如何修改el-cascader的默認樣式,需要的朋友可以參考下
    2023-12-12
  • 詳解vue-cli項目中用json-sever搭建mock服務器

    詳解vue-cli項目中用json-sever搭建mock服務器

    這篇文章主要介紹了詳解vue-cli項目中用json-sever搭建mock服務器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • vue項目如何引入element?ui、iview和echarts

    vue項目如何引入element?ui、iview和echarts

    這篇文章主要介紹了vue項目如何引入element?ui、iview和echarts,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

金塔县| 京山县| 瓦房店市| 潮安县| 大宁县| 仙桃市| 英吉沙县| 上饶市| 广宁县| 海兴县| 泰和县| 陆丰市| 慈利县| 普定县| 理塘县| 湄潭县| 西城区| 巴林左旗| 柳林县| 滨海县| 神池县| 三河市| 河北省| 固原市| 滨海县| 顺义区| 三台县| 罗甸县| 柘荣县| 石河子市| 筠连县| 洪泽县| 延长县| 萨嘎县| 启东市| 曲水县| 绍兴市| 望城县| 延寿县| 南江县| 台湾省|