1. 程式人生 > >vue學習——v-for語句

vue學習——v-for語句

Vue v-for語句


在學習v-for語句之前,先了解一下vue是怎麼資料繫結
資料繫結最常見的形式就是使用“Mustache”語法 (雙大括號) 的文字插值:

<span>Message: {{ msg }}</span>

Mustache 標籤將會被替代為對應資料物件上 msg 屬性的值。無論何時,繫結的資料物件上 msg 屬性發生了改變,插值處的內容都會更新。

通過使用 v-once 指令,你也能執行一次性地插值,當資料改變時,插值處的內容不會更新。但請留心這會影響到該節點上的其它資料繫結:

<span v-once
>
這個將不會改變: {{ msg }}</span>

v-for把一個數組對應為一組元素

上文那樣的搭建vue環境後.

v-for語法法
我們用 v-for 指令根據一組陣列的選項列表進行渲染。v-for 指令需要使用 item in items 形式的特殊語法,items 是源資料陣列並且 item 是陣列元素迭代的別名。當然你也可以用你喜歡的別名。如:

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

data資料屬性中,寫上一個素組的資訊:

// 簡單學習vue v-for迭代
        var app = new Vue({
            el: '#app',
            data: {
                aString:['我','是','數','組']
        })

結果:

一個物件的 v-for

<ul>
    <li>{{objInArr}}</
li
>
<li v-for="obj in objInArr">{{obj.name}} : {{obj.sex}}</li> </ul>
var app = new Vue({
            el: '#app',
            data: {
               objInArr: [
                    {
                    name: "我是數組裡面的物件1",
                    sex: "gay"
                    },
                    {
                    name: "我是數組裡面的物件2",
                    sex: "gay"
                    },
                    {
                    name: "我是數組裡面的物件3",
                    sex: "gay"
                    },
                ],
                
            }
            
        })

結果:
v-for

你甚至可以在操作物件時使用另外兩個引數(一定得是物件):
(value, key, index) in object

<ul>
     <li>key和index演示</li>
     <li v-for="(value, key, index) in student"> {{index}}.{{key}}:{{value}} </li>
</ul>
var app = new Vue({
            el: '#app',
            data: {
 			student: {
                        name: "這裡是物件",
                        sex: "gay",
                        num: 233
                    },
                  }
         })

結果:
v-for value key index

END

完整demo

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>v-for</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="string in aString">{{string}}</li>
        </ul>
        
        <ul>
            <li>{{objInArr}}</li>
            <li v-for="obj in objInArr">{{obj.name}} : {{obj.sex}}</li>
        </ul>
        <ul>
            <li>key和index演示</li>
            <li v-for="(value, key, index) in student"> {{index}}.{{key}}:{{value}} </li>
        </ul>
        <div v-for="(value, key, index) in object">
                {{ index }}. {{ key }}: {{ value }}
              </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

    <script>
        // 簡單學習vue v-for迭代
        var app = new Vue({
            el: '#app',
            data: {
                aString:['我','是','數','組'],
                
                objInArr: [
                    {
                    name: "我是數組裡面的物件1",
                    sex: "gay"
                    },
                    {
                    name: "我是數組裡面的物件2",
                    sex: "gay"
                    },
                    {
                    name: "我是數組裡面的物件3",
                    sex: "gay"
                    },
                ],

                student: {
                        name: "這裡是物件",
                        sex: "gay",
                        num: 233
                    },
                
            }
            
        })
    </script>
</body>
</html>