v-for=「movie in movies」
依次從movies中取出movie,並且在元素的內容中,我們可以使用mustache語法,來使用movie
如果在遍歷的過程中,我們需要拿到元素在陣列中的索引值呢?
語法格式:v-for=(item, index) in items
其中的index就代表了取出的item在原陣列的索引值。
>
for=
"item in names"
>
}<
/li>
<
/ul>
for=
"(value, key) in info"
>}-
}<
/li>
<
/ul>
for=
"(value, key, index) in info"
>}-
}-}<
/li>
<
/ul>
<
/div>
"../js/vue.js"
>
<
/script>
newvue(}
})<
/script>
這個其實和vue的虛擬dom的diff演算法有關係。
這裡我們借用react』s diff algorithm中的一張圖來簡單說明一下:
當某一層有很多相同的節點時,也就是列表節點時,我們希望插入乙個新的節點
我們希望可以在b和c之間加乙個f,diff演算法預設執行起來是這樣的。
即把c更新成f,d更新成c,e更新成d,最後再插入e,是不是很沒有效率?
所以我們需要使用key來給每個節點做乙個唯一標識
diff演算法就可以正確的識別此節點
找到正確的位置區插入新的節點。
所以一句話,key的作用主要是為了高效的更新虛擬dom。
v for使用key的原因
1.vue中列表迴圈需加 key 唯一標識 唯一標識最好是item裡面id等。因為vue元件高度復用,增加key可以標識元件的唯一性,更好地區別各個元件。key的作用主要是為了高效地更新虛擬dom。2.key主要用來做dom diff演算法用的,diff演算法是同級比較,比較當前標籤上的key還有它...
Vue指令v for和key屬性
迭代陣列 迭代物件中的屬性 迭代數字 這是第 個p標籤 2.2.0 的版本裡,當在元件中使用v for 時,key 現在是必須的。當 vue.js 用 v for 正在更新已渲染過的元素列表時,它預設用 就地復用 策略。如果資料項的順序被改變,vue將不是移動 dom 元素來匹配資料項的順序,而是簡...
v for中key屬性的作用
key 當 vue.js 用v for正在更新已渲染過的元素列表時,它預設用 就地復用 策略。如果資料項的順序被改變,vue 將不會移動 dom 元素來匹配資料項的順序,而是簡單復用此處每個元素,並且確保它在特定索引下顯示已被渲染過的每個元素。我們在使用的使用經常會使用index 即陣列的下標 來作...