vue之列表渲染

2022-06-12 03:42:08 字數 1793 閱讀 2855

一、v-for迴圈用於陣列

v-for指令根據一組陣列的選項列表進行渲染。

1、v-for指令需要使用item in items形式的特殊語法,items是源資料陣列名,item是陣列元素迭代的別名(為當前遍歷的元素提供別名,可以任意起名)。

<

ul id

="example"

>

<

li v-for

="item in items"

>}

li>

ul>

var example= new

vue(,

]}})

輸出:foo

bar2、v-for還支援乙個可選的第二個引數為當前項的索引,索引從0開始。

輸出:0-foo

1-bar

注:可以用of代替in作為分隔符

for="item of items">

新陣列語法 

value in arr 

(value, index) in arr

二、v-for用於物件

1、v-for通過乙個物件的屬性來遍歷輸出。

new

vue(

}})

輸出:john

doe2、為v-for提供第二個引數為鍵名

for="(value, key) in object">}: }

3、第三個引數為索引:

for="(value, key, index) in object">}. }: }

新物件語法 

value in obj

(value, key) in obj 

(value, key, index) in obj

三、v-for的key

網上查的資料,那些全部都是一樣的講解演算法,演算法思想看懂了,但是實際操作不成功,覺得都不能很好的深入把demo寫出來。後續要把該問題解決補充。

} v-for迴圈資料,當用for來更新已經被渲染的元素時,vue的「就地復用」機,是不會改變資料項的順序的,如果想要重新排序,需要為每項新增key(也就是每項的唯一id)

}按照自己的理解寫的例子,

其一:當在for迴圈中加入新元素,如果只是在末尾(push)新增,不使用key也無所謂,不會重新渲染新增元素之前的元素。只有在for迴圈中間或者開頭新增,如果不使用key,則會引起從新增元素開始,及之後的所有元素的重新渲染。如果假如了key,則只會渲染該加入的元素。

其二:如果在

寫入了index,渲染效果和沒有加key的效果相同,在開頭或者中間加入後面所有都要渲染。(此處不理解網上的寫的例子,後續還是等遇到實際問題,再回來補充解決)

eg:不管是用splice還是this.list.unshift(),

新增新元素

四、陣列變異方法

vue 包含一組觀察陣列的變異方法,所以它們也將會觸發檢視更新。這些方法如下:

push() 方法和 pop() 方法使用陣列提供的先進後出棧的功能。

vue之列表迴圈

文件 當 vue.js 用v for正在更新已渲染過的元素列表時,它預設用 就地復用 策略。如果資料項的順序被改變,vue 將不會移動 dom 元素來匹配資料項的順序,而是簡單復用此處每個元素,並且確保它在特定索引下顯示已被渲染過的每個元素。這個類似 vue 1.x 的track by index ...

vue 列表渲染

列表渲染 v for指令 v for in data 如果需要 索引 index v for item,index in data 物件 v for index,item,key in obj 例子 總結 v for 最多可以有三個引數 格式v for index,item,key in data ...

vue列表渲染

v for更新渲染過的元素列表,預設使用復用策略,這個預設的模式是高效的,但是只適用於不依賴子元件狀態或臨時 dom 狀態 例如 表單輸入值 的列表渲染輸出 迭代物件屬性有三個引數,value,name,index 使用陣列的變異方法改變陣列觸發檢視更新 使用非變異方法返回乙個新陣列來替換原陣列時,...