Vue中key的具體使用
一、v-for中key的作用
給節(jié)點進行一個標識,類似于身份證號。
1-1、需求1:
點擊按鈕,在<li>的最前面添加一個老劉的信息
<body> <div id="root"> <h1>人員信息</h1> <button @click.once="add">點擊添加老王</button> <ul> <li v-for="(p, index) in persons" ::key="index"> {{p.name}}-{{p.age}} <input type="text"> </li> </ul> </div> <script> new Vue({ el:'#root', data:{ persons:[ {id:'001', name:'張三', age: 18}, {id:'002', name:'李四', age: 20}, {id:'003', name:'王五', age: 10} ] }, methods: { add(){ const p = {id:'004', name:'老王', age: 40}; // 將數(shù)據(jù)往數(shù)組前面加 this.persons.unshift(p); } }, }) </script> </body>
因為,key被vue內(nèi)部在用。
1-2、key="index"的問題:
1、效率不高
2、文本框錯亂
1-3、遍歷列表的時候key的作用
用戶操作的都是真實的DOM。
虛擬DOM做對比算法的時候,拿的是兩邊的key做的對比。
若是將老王加在王五的后面,則不存在該問題。
所以,當對數(shù)據(jù)進行了破壞順序的操作時,key="index"有問題!
張三、李四、王五都是新生成的,不是從左邊已經(jīng)生成的真實DOM中復用的,所以效率低
1-4、解決方式:key="p.id"
1-5、v-for遍歷沒有key
當v-for遍歷沒有key的時候,vue自動將遍歷時候的索引值(index)作為key了。
二、小結
到此這篇關于Vue中key的具體使用的文章就介紹到這了,更多相關Vue key內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vuex 在Vue 組件中獲得Vuex 狀態(tài)state的方法
今天小編就為大家分享一篇Vuex 在Vue 組件中獲得Vuex 狀態(tài)state的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08詳解win7 cmd執(zhí)行vue不是內(nèi)部命令的解決方法
這篇文章主要介紹了詳解win7 cmd執(zhí)行vue不是內(nèi)部命令的解決方法的相關資料,這里提供了解決問題的詳細步驟,具有一定的參考價值,需要的朋友可以參考下2017-07-07vue中echarts關系圖動態(tài)增刪節(jié)點以及連線方式
這篇文章主要介紹了vue中echarts關系圖動態(tài)增刪節(jié)點以及連線方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Vue.js實戰(zhàn)之使用Vuex + axios發(fā)送請求詳解
這篇文章主要給大家介紹了關于Vue.js使用Vuex與axios發(fā)送請求的相關資料,文中介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04