vue for循环_复习之v-for指令(列表渲染指令)

4b5540a2c18019eb2d5c480b2c5d5263.png

引入vue.js

    <!-- 引入vue.js -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

作用:基于数据多次渲染元素。

如何使用v-for指令?

1.在v-for中使用数组

list:data中的源数据数组,

item:data数据list数组的别名,

index:list数组索引

    <div id="app">
        <!-- 这里表示被vue控制的区域 -->
        <ul>
            <li v-for="(item, index) in list">
                {{ index }}---{{ item.name }}---{{ item.age }}
            </li>
        </ul>
    </div>
    <script>
        const vm = new Vue({
            el: '#app', // 控制id为app的元素
            data: {
                // 存放所需要的数据
                list: [{
                        name: 'li',
                        age: 18
                    },
                    {
                        name: 'liu',
                        age: 20
                    },
                    {
                        name: 'wang',
                        age: 22
                    },
                    {
                        name: 'deng',
                        age: 88
                    },
                ]
            }
        })
    </script>

d093e34c21903a9f37c5d7c2ec627fd8.png

2.在v-for中使用对象

li:data中的源数据对象,

value: 对象值,

key:键名,对象名,

index:li对象索引

    <div id="app">
        <!-- 这里表示被vue控制的区域 -->
        <ul>
            <li v-for="(value, key, index) in li">
                {{ index }}---{{ key }}---{{ value }}
            </li>
        </ul>
    </div>
    <script>
        const vm = new Vue({
            el: '#app', // 控制id为app的元素
            data: {
                // 存放所需要的数据
                li: {
                    name: 'li',
                    age: 20,
                    height: '160cm',
                    width: '86kg'
                }
            }
        })
    </script>

61013ef40fe385f576d5ab5b04f8a567.png

3.在v-for中使用数字

num:data中的源数据数字,

n:从1开始

index:num数字索引

    <div id="app">
        <!-- 这里表示被vue控制的区域 -->
        <ul>
            <li v-for="(n, index) in num">
                {{ index }}---{{ n }}
            </li>
        </ul>
    </div>
    <script>
        const vm = new Vue({
            el: '#app', // 控制id为app的元素
            data: {
                // 存放所需要的数据
                num: 10
            }
        })
    </script>

3993e6e23d19a6fc8ed56fa84d106efc.png

4.在v-for中使用字符串

string:data中的源数据字符串,

str:data数据string字符串的每一个,

index:string字符串索引

    <div id="app">
        <!-- 这里表示被vue控制的区域 -->
        <ul>
            <li v-for="(str, index) in string">
                {{ index }}---{{ str }}
            </li>
        </ul>
    </div>
    <script>
        const vm = new Vue({
            el: '#app', // 控制id为app的元素
            data: {
                // 存放所需要的数据
                string: 'abcdefgh'
            }
        })
    </script>

9e62820cd043569791cce61a25e497bf.png

使用v-for循环一段包含多个元素的内容

需要利用template元素,如:

    <div id="app">
        <!-- 这里表示被vue控制的区域 -->
        <ul>
            <template v-for="item in li">
                <li>{{ item.name }}</li>
                <span>{{ item.age }}</span>
            </template>
        </ul>
    </div>
    <script>
        const vm = new Vue({
            el: '#app', // 控制id为app的元素
            data: {
                // 存放所需要的数据
                li: [
                { name: 'li', age: 18 },
                { name: 'liu', age: 20 },
                { name: 'wang', age: 22 },
                { name: 'deng', age: 88 },]
            }
        })
    </script>

4647aec17280f18bc5969667def5e88d.png

可以利用 of 替代 in 作为分隔符,因为它更接近迭代器的语法,如:

    <div id="app">
        <!-- 这里表示被vue控制的区域 -->
        <ul>
            <template v-for="item of li">
                <li>{{ item.name }}</li>
                <span>{{ item.age }}</span>
            </template>
        </ul>
    </div>
    <script>
        const vm = new Vue({
            el: '#app', // 控制id为app的元素
            data: {
                // 存放所需要的数据
                li: [
                { name: 'li', age: 18 },
                { name: 'liu', age: 20 },
                { name: 'wang', age: 22 },
                { name: 'deng', age: 88 },]
            }
        })
    </script>

ddbc0463c975482f921672b1ae3b2c4c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值