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

Vue中的v-for列表循環(huán)示例詳解

 更新時間:2022年11月01日 14:21:44   作者:海綿寶寶_0113  
循環(huán)使用v-for指令,v-for指令需要以site in sites形式的特殊語法,sites是源數(shù)據(jù)數(shù)組并且site是數(shù)組元素迭代的別名,下面這篇文章主要給大家介紹了關(guān)于Vue中v-for列表循環(huán)的相關(guān)資料,需要的朋友可以參考下

前言

在電商項目的開發(fā)中,會用到這樣一個問題:商品的陳列我們?nèi)绻褂迷膉s會顯得十分臃腫。但是在Vue中,我們可以直接使用列表渲染來實現(xiàn)這樣的效果。

1. v-for

v-for指令用于渲染一個列表,它接受一個數(shù)組或者對象,然后使用一個模板來渲染每個元素。

v-for指令需要使用item in items的語法,其中items是源數(shù)據(jù)數(shù)組,而item則是被迭代的數(shù)組元素的別名。

在vue中,使用v-for指令不僅可以渲染數(shù)組,還可以渲染對象。當(dāng)使用v-for渲染對象時,它會遍歷對象的屬性名。

1.1 數(shù)組

這里我們使用一個數(shù)組來渲染一個列表。

<div id="app">
    <ul>
        <li v-for="item in items">{{item}}</li>
    </ul>

在上面我們寫了一個ul標(biāo)簽,然后使用v-for指令來渲染一個數(shù)組。這里我們使用了item in items的語法,其中items是源數(shù)據(jù)數(shù)組,而item則是被迭代的數(shù)組元素的別名。

    var vm = new Vue({
        el: '#app',
        data: {
            items: [
                11,22,33
            ],
        }
    });

渲染結(jié)果:

當(dāng)然在使用v-for來遍歷數(shù)組的時候,還可以添加另外一個屬性。這里我們使用index作為數(shù)組的索引。

<div id="app">
    <ul>
        <li v-for="(item,index) in items">{{index}}:{{item}}</li>
    </ul>

渲染結(jié)果:

tips:

記得兩個屬性之間要添加逗號。

1.2 對象

前面我們看了數(shù)組的渲染,那么我們也可以使用v-for來渲染對象。

<div id="app">
    <ul>
        <li v-for="(value,key,index) in object">{{index}}:{{key}}:{{value}}</li>
    </ul>
    var vm = new Vue({
        el:'#app',
        data:{
            obj:{
                name:'張三',
                age:18,
            }
        },
    });

結(jié)果如下:

在遍歷對象的時候,我們這里填寫了三個屬性,分別是value,key,index。其中value是對象的值,key是對象的鍵,index是索引。

通過結(jié)果也顯而易見。

2. v-for的key

在使用v-for來渲染列表的時候,我們需要為每一個節(jié)點添加一個唯一的key屬性。這樣做的好處是可以提高渲染的效率。

眾所周知,在vue中有一個虛擬dom,通過虛擬dom可以極大的提高渲染的效率。當(dāng)我們使用v-for來渲染一個列表的時候,vue會根據(jù)key來判斷節(jié)點是否需要更新。如果key不變,那么vue會復(fù)用節(jié)點,如果key變了,那么vue會重新渲染節(jié)點。

也就是說,如果我們需要給對象或者數(shù)組添加/刪除元素,vue會先比較哪些元素變了,哪些元素沒變。變了的元素,dom才會更新,沒有發(fā)生改變的,dom就直接拿過來使用。這樣就極大的提高了渲染的效率。

補充:v-for中key屬性的意義

舉個例子如
<li v-for="(item,index) in anime" :key="item">{{index+1}}-{{item}}</li>
或者
<td v-for="(value,name,index) of obj" :key="index">
武器 {{value}} <br>人物 {{name}}  <br>排名 {{index}}
</td>

v-for遍歷對象,這里的key是個形參,它指的是對象里的屬性名,可以是id,name或者什么

而其他時候,在我們使用v-for時,建議給對應(yīng)的元素或組件添加一個key屬性

主要是為了更加高效的更新虛擬DOM,便于diff算法

假設(shè)要在一個節(jié)點列表abcde的bc之間插入一個新節(jié)點f,在添加key屬性前,算法默認是將c更新成f,d更新成c,e更新成d,最后再插入e,這樣是幾步?大家可以數(shù)一下

而在添加key屬性后,key為每一個節(jié)點做了一個標(biāo)識,算法可以準確高效的在要求的位置插入新節(jié)點,也就不會再那樣一次更新消耗資源了

官方的解釋:key屬性主要用在Vue的虛擬DOM算法,在新舊nodes對比時辨識VNodes;

如果不使用key,Vue會使用一種最大限度減少動態(tài)元素并且盡可能的嘗試就地修改/復(fù)用相同類型元素的算法;

而使用key時,它會基于key的變化重新排列元素順序,并且會移除/銷毀key不存在的元素;

詳細來說,我們知道,vue實現(xiàn)了一套虛擬DOM,使我們可以不直接操作DOM元素,只操作數(shù)據(jù)便可以重新渲染頁面。而隱藏在背后的原理便是其高效的Diff算法。

總結(jié)

到此這篇關(guān)于Vue中的v-for列表循環(huán)的文章就介紹到這了,更多相關(guān)Vue v-for列表循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3組合式API中使用forwardRef()函數(shù)

    Vue3組合式API中使用forwardRef()函數(shù)

    本文主要介紹了Vue3組合式API中使用forwardRef()函數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 基于Vue3實現(xiàn)一個簡單的雪花漂浮效果

    基于Vue3實現(xiàn)一個簡單的雪花漂浮效果

    隨著冬季的到來,許多網(wǎng)站和應(yīng)用程序都會添加一些節(jié)日氛圍的元素,比如雪花飄落的效果,本文將教你如何在 Vue 3 中實現(xiàn)一個簡單的雪花漂浮效果,為你的網(wǎng)頁增添一絲冬日的浪漫,感興趣的小伙伴跟著小編一起來看看吧
    2025-01-01
  • Element-ui/Element-plus?Vue報錯問題及解決

    Element-ui/Element-plus?Vue報錯問題及解決

    這篇文章主要介紹了Element-ui/Element-plus?Vue報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue-路由精講 二級路由和三級路由的作用

    vue-路由精講 二級路由和三級路由的作用

    這篇文章主要介紹了vue-路由精講 二級路由和三級路由的作用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue中provide和inject的用法及說明(vue組件爺孫傳值)

    vue中provide和inject的用法及說明(vue組件爺孫傳值)

    這篇文章主要介紹了vue中provide和inject的用法及說明(vue組件爺孫傳值),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解VueJs中的V-bind指令

    詳解VueJs中的V-bind指令

    v-bind 主要用于屬性綁定,比方你的class屬性,style屬性,value屬性,href屬性等等,只要是屬性,就可以用v-bind指令進行綁定.這篇文章主要介紹了VueJs中的V-bind指令,需要的朋友可以參考下
    2018-05-05
  • vue-cli+webpack記事本項目創(chuàng)建

    vue-cli+webpack記事本項目創(chuàng)建

    這篇文章主要為大家詳細介紹了vue-cli+webpack創(chuàng)建記事本項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 使用淘寶鏡像cnpm安裝Vue.js的圖文教程

    使用淘寶鏡像cnpm安裝Vue.js的圖文教程

    今天小編就為大家分享一篇使用淘寶鏡像cnpm安裝Vue.js的圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 使用vue實現(xiàn)一個電子簽名組件的示例代碼

    使用vue實現(xiàn)一個電子簽名組件的示例代碼

    這篇文章主要介紹了使用vue實現(xiàn)一個電子簽名組件的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 在vue中實現(xiàn)禁止屏幕滾動,禁止屏幕滑動

    在vue中實現(xiàn)禁止屏幕滾動,禁止屏幕滑動

    這篇文章主要介紹了在vue中實現(xiàn)禁止屏幕滾動,禁止屏幕滑動,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評論

长白| 四子王旗| 卓尼县| 自治县| 年辖:市辖区| 广宁县| 商都县| 和顺县| 巴马| 上思县| 安溪县| 潞西市| 天长市| 体育| 镇雄县| 建阳市| 玉龙| 桂阳县| 简阳市| 观塘区| 乌海市| 卫辉市| 沐川县| 阳泉市| 鸡东县| 福安市| 永城市| 桑植县| 临清市| 华阴市| 化德县| 九龙城区| 金平| 亚东县| 资溪县| 黎川县| 沁源县| 宜宾市| 巩义市| 侯马市| 盈江县|