iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
自我挑戰組

從零開始Vue(View)系列 第 7

[Day7]v-for指令

  • 分享至 

  • xImage
  •  

列表資料綁定(v-for)
當需要列出多筆資料時,會用到v-for語法,我們要用v-for在HTML頁面中列表資料的渲染。綁定列表資料時,列表資料的資料型態有Array和Object兩種。

  • Array列表資料:
    HTML:
<div id="app">
     <ul>
        <li v-for="item in list">{{item}}</li>
     </ul>
</div>

Vue實體:

<script>
    var app =Vue.createApp({
       data:function() {
         return {
            list:['yvonne','emily','karina']
         }
       },
    });
    app.mount('#app');
</script>

執行結果:
https://ithelp.ithome.com.tw/upload/images/20230911/20161195IYoIaEtk2M.png

說明:
在data中建立Array資料(colors),array裡面有yvonne、emily、karina三個資料。而HTML的部分用<li v-for = “item in list’>{{item}}</li>表示。
(item這個位置可以換別的名稱)
語法:
v-for = “(array元素總稱 , 索引) in 陣列屬性名稱”{{ array元素總稱}}

加入index:
<li v-for="(item,index) in list">{{item}} / {{index}}</li>

執行結果:
https://ithelp.ithome.com.tw/upload/images/20230911/2016119558v61ZELKD.png

  • Object列表資料:
<div id="app">
            <ul>
                <li v-for="(value,item) in name">{{item}} -> {{value}}</li>
            </ul>
        </div>
<script>
   var app =Vue.createApp({
     data:function() {
        return {
          name:{
             one:"yvonne",
             two:"emily",
             three:"karina",
          }
        };
     },
   });
  app.mount('#app');
</script>

執行結果:
https://ithelp.ithome.com.tw/upload/images/20230911/20161195nczwtRzsEp.png

說明:
在data中建立Object資料,以上面為例,其中的one、two、three為物件,冒號後為物件的值(vlaue)。
語法:
v-for = “(屬性值 , array元素總稱 , 索引) in 陣列屬性名稱”{{ array元素總稱}}
加入index:
<li v-for="(value,item,index) in name">{{item}} ->{{value}}({{index}})</li>

執行結果:
https://ithelp.ithome.com.tw/upload/images/20230911/20161195cLZNQiRjOn.png

v-for與key屬性
當Array或是Object的資料有變動時,需要將Array所有元素或Object所有屬性重新渲染,只有一個小變動,卻要重新渲染全部,這樣效率會不好。所以Vue設置key屬性辨識有變動的地方,並重新渲染有修改的地方。

<div id="app">
            <ul>
                <li v-for="(value,item) in name" v-bind:key="item">
                 {{item}} -> {{value}}
                </li>
            </ul>
        </div>

上一篇
[Day6]基礎綁定及v-bind指令
下一篇
[Day8]v-show及v-if
系列文
從零開始Vue(View)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言