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

淺談VUE中演示v-for為什么要加key

 更新時間:2020年01月16日 16:38:18   作者:Nanshannan  
這篇文章主要介紹了淺談VUE中演示v-for為什么要加key,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

說到這個問題想必要舉個例子了

沒有key

 <div id="app">
  <div>
   <input type="text" v-model="name">
   <button @click="add">添加</button>
  </div>
  <ul>
   <li v-for="(item, i) in list">
    <input type="checkbox"> {{item.name}}
   </li>
  </ul>
<script>
  // 創(chuàng)建 Vue 實例,得到 ViewModel
  var vm = new Vue({
   el: '#app',
   data: {
    name: '',
    newId: 3,
    list: [
     { id: 1, name: '李斯' },
     { id: 2, name: '呂不韋' },
     { id: 3, name: '嬴政' }
    ]
   },
   methods: {
    add() {
     //注意這里是unshift
     this.list.unshift({ id: ++this.newId, name: this.name })
     this.name = ''
    }
   }
  });
 </script>
 </div>

當選中呂不為時,添加楠楠后選中的確是李斯,并不是我們想要的結(jié)果,我們想要的是當添加楠楠后,一種選中的是呂不為



有key

 <div id="app">
  <div>
   <input type="text" v-model="name">
   <button @click="add">添加</button>
  </div>
  <ul>
   <li v-for="(item, i) in list" :key="item.id">
    <input type="checkbox"> {{item.name}}
   </li>
  </ul>
<script>
  // 創(chuàng)建 Vue 實例,得到 ViewModel
  var vm = new Vue({
   el: '#app',
   data: {
    name: '',
    newId: 3,
    list: [
     { id: 1, name: '李斯' },
     { id: 2, name: '呂不韋' },
     { id: 3, name: '嬴政' }
    ]
   },
   methods: {
    add() {
     //注意這里是unshift
     this.list.unshift({ id: ++this.newId, name: this.name })
     this.name = ''
    }
   }
  });
 </script>
 </div>

同樣當選中呂不為時,添加楠楠后依舊選中的是呂不為。

可以簡單的這樣理解:加了key(一定要具有唯一性) id的checkbox跟內(nèi)容進行了一個關(guān)聯(lián)。是我們想達到的效果

查過相關(guān)文檔,圖例說明很清晰。

vue和react的虛擬DOM的Diff算法大致相同,其核心是基于兩個簡單的假設(shè)
首先講一下diff算法的處理方法,對操作前后的dom樹同一層的節(jié)點進行對比,一層一層對比,如下圖:


當某一層有很多相同的節(jié)點時,也就是列表節(jié)點時,Diff算法的更新過程默認情況下也是遵循以上原則。

比如一下這個情況:

我們希望可以在B和C之間加一個F,Diff算法默認執(zhí)行起來是這樣的:

即把C更新成F,D更新成C,E更新成D,最后再插入E,是不是很沒有效率?
所以我們需要使用key來給每個節(jié)點做一個唯一標識,Diff算法就可以正確的識別此節(jié)點,找到正確的位置區(qū)插入新的節(jié)點。

vue中列表循環(huán)需加:key="唯一標識" 唯一標識可以是item里面id index等,因為vue組件高度復(fù)用增加Key可以標識組件的唯一性,為了更好地區(qū)別各個組件 key的作用主要是為了高效的更新虛擬DOM

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Vue中如何使用Cookie操作實例

    在Vue中如何使用Cookie操作實例

    這篇文章主要介紹了在Vue中如何使用Cookie操作實例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • vue.js基于v-for實現(xiàn)批量渲染 Json數(shù)組對象列表數(shù)據(jù)示例

    vue.js基于v-for實現(xiàn)批量渲染 Json數(shù)組對象列表數(shù)據(jù)示例

    這篇文章主要介紹了vue.js基于v-for實現(xiàn)批量渲染 Json數(shù)組對象列表數(shù)據(jù),結(jié)合實例形式分析了vue.js使用v-for遍歷json格式數(shù)據(jù)渲染列表相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • vue跨窗口通信之新窗口調(diào)用父窗口方法實例

    vue跨窗口通信之新窗口調(diào)用父窗口方法實例

    由于開發(fā)需要,我需要在登錄成功請求成功后,調(diào)用父窗口的一個點擊事件方法,這篇文章主要給大家介紹了關(guān)于vue跨窗口通信之新窗口調(diào)用父窗口的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue-cli中安裝方法(圖文詳細步驟)

    vue-cli中安裝方法(圖文詳細步驟)

    這篇文章主要介紹了vue-cli中安裝方法(圖文詳細步驟),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 解決element ui el-row el-col里面高度不一致問題

    解決element ui el-row el-col里面高度不一致問題

    這篇文章主要介紹了解決element ui el-row el-col里面高度不一致問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue中如何通過iframe方式加載本地的vue頁面

    vue中如何通過iframe方式加載本地的vue頁面

    這篇文章主要介紹了vue中如何通過iframe方式加載本地的vue頁面,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue混入mixins滾動觸底的方法

    Vue混入mixins滾動觸底的方法

    這篇文章主要介紹了Vue混入mixins滾動觸底的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vue-cli對element-ui組件進行二次封裝的實戰(zhàn)記錄

    vue-cli對element-ui組件進行二次封裝的實戰(zhàn)記錄

    組件類似于需要多個地方用到的方法,在Vue中組件就是一種復(fù)用(經(jīng)常使用)一個功能的手段,下面這篇文章主要給大家介紹了關(guān)于Vue?element?ui二次封裝的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • vue+element搭建后臺小總結(jié) el-dropdown下拉功能

    vue+element搭建后臺小總結(jié) el-dropdown下拉功能

    這篇文章主要為大家詳細介紹了vue+element搭建后臺小總結(jié),el-dropdown下拉功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Vue多系統(tǒng)切換實現(xiàn)方案

    Vue多系統(tǒng)切換實現(xiàn)方案

    本篇文章給大家分享了關(guān)于Vue多系統(tǒng)切換實現(xiàn)的解決方案,對此有需要的朋友可以跟著參考學(xué)習(xí)下。
    2018-06-06

最新評論

都兰县| 涞源县| 玉门市| 乐安县| 绵竹市| 英山县| 芒康县| 遵义市| 乡城县| 云梦县| 锦州市| 同仁县| 开化县| 陇西县| 海阳市| 汉阴县| 彭泽县| 通海县| 赤峰市| 衡阳县| 云林县| 尤溪县| 巴彦淖尔市| 巧家县| 绥化市| 黄陵县| 睢宁县| 淄博市| 通海县| 云阳县| 新闻| 四子王旗| 滦平县| 香港| 永和县| 淮滨县| 衡山县| 渝中区| 湘西| 柏乡县| 梁河县|