簡單理解vue中track-by屬性
本文實例為大家解析了vue中track-by的屬性,供大家參考,具體內(nèi)容如下
api:http://cn.vuejs.org/guide/list.html#track-by
示例地址:https://jsfiddle.net/stardew/f1eju0ku/5/
無track-by情況:數(shù)據(jù)修改時,無論值是否被修改,dom都被重新渲染(控制臺可以看到)
加入track-by屬性:數(shù)據(jù)修改時,不變數(shù)據(jù)所在的dom不被重新渲染,已改變的數(shù)據(jù)所在dom才被重新渲染
track-by的兩種使用方法:
1. 使用數(shù)據(jù)中某唯一字段,例如_uid
<div id="example"> <p v-for="item in items" track-by="_uid"> {{item.message}} </p> <input type="button" value="修改" @click="modify"/> <input type="button" value="還原" @click="reduct"/> </div> // 初始數(shù)據(jù) items: [ { _uid: '111111', message: '111' }, { _uid: '222222', message: '222' }, { _uid: '333333', message: '333' }, { _uid: '444444', message: '444' }, { _uid: '555555', message: '555' } ] // 修改成 modify: function () { this.items = [ { _uid: '111111', message: '111' }, { _uid: '666666', message: '222' }, { _uid: '333333', message: '3333' }, { _uid: '888888', message: '4444' }, { _uid: '999999', message: '5555' } ] }
渲染效果如下圖右(左邊無track-by,右邊有track-by),_uid和message都不變的情況下,才不被重新渲染,只有第一組符合條件。
2. 使用$index,其它條件同上
<div id="example"> <p v-for="item in items" track-by="$index"> {{item.message}} </p> <input type="button" value="修改" @click="modify"/> <input type="button" value="還原" @click="reduct"/> </div>
渲染效果如下圖右,message的值第一、二條都沒改變,所以一、二都沒有重新渲染。
模板中同時使用message和_uid時,只有兩者都不變的情況下才不重新渲染,如下:
<div id="example"> <p v-for="item in items" track-by="$index"> {{item.message}} {{item._uid}} </p> <input type="button" value="修改" @click="modify"/> <input type="button" value="還原" @click="reduct"/> </div>
本文已被整理到了《Vue.js前端組件學(xué)習(xí)教程》,歡迎大家學(xué)習(xí)閱讀。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
element-UI?el-table樹形數(shù)據(jù)?修改小三角圖標(biāo)方式
這篇文章主要介紹了element-UI?el-table樹形數(shù)據(jù)?修改小三角圖標(biāo)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07使用Vant如何實現(xiàn)數(shù)據(jù)分頁,下拉加載
這篇文章主要介紹了使用Vant實現(xiàn)數(shù)據(jù)分頁及下拉加載方式。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06通過GASP讓vue實現(xiàn)動態(tài)效果實例代碼詳解
GASP是一個JavaScript動畫庫,它支持快速開發(fā)高性能的 Web 動畫。GASP 使我們能夠輕松輕松快速的將動畫串在一起,來創(chuàng)造一個高內(nèi)聚的流暢動畫序列。這篇文章主要介紹了通過GASP讓vue實現(xiàn)動態(tài)效果,需要的朋友可以參考下2019-11-11vue 實現(xiàn) tomato timer(蕃茄鐘)實例講解
下面小編就為大家?guī)硪黄獀ue 實現(xiàn) tomato timer(蕃茄鐘)實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07vue-devtools?開發(fā)工具插件之支持vue3?chrome?瀏覽器插件
這篇文章主要介紹了vue-devtools?開發(fā)工具插件之支持vue3?chrome?瀏覽器插件,用這個版本主要是為了支持vue3?推薦直接下載,文中給大家提供了下載地址,感興趣的朋友跟隨小編一起看看吧2022-01-01