前端VUE3.0,DAY17,列表渲染之v-for

列表渲染之基本列表v-for

1.使用v-for让vue自动进行循环遍历data中写的数据。代码中,data中的persons1写了三个id的数据。将v-for使用在一个小li标签中,在网页中则自动生成了三个小li标签数据。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本列表</title>
    <!--引入vue-->
    <script type="text/javascript" src="../vue.js">
        Vue.config.productionTip = false
    </script>
    <!--上边的vue.config选项关闭了启动时生成生产提示-->
</head>

<body>
    <!--准备好一个容器-->
    <div id="root">
        <ul>
            <!--v-for使用vue代替人力做循环,遍历-->
            <!--in后边写的是一堆数据,in前边是一堆数据中的一个数据-->
            <li v-for="XianShi in persons1">{{XianShi}}</li>
            <!--使用上边的代码后,在网页中就会自动生成三个li标签内的数据。因为data中persons1有三个数据-->
        </ul>
    </div>


    <script type="text/javascript">
        Vue.config.productionTip = false
        //创建vue实例,习惯用一个变量来接该vue实例,此处用x
        const x = new Vue({
            el: '#root',
            data() {
                return {
                    //根据person1中的数据,进行遍历,生成三个li中的显示
                    persons1: [
                        {
                            id: '001', name: '张三', age: 18
                        },
                        {
                            id: '002', name: '李四', age: 19
                        },
                        {
                            id: '003', name: '王五', age: 20
                        }
                    ]
                }
            },
        })

    </script>
</body>

</html>

在这里插入图片描述
2.实际上我们不需要显示出这么多的信息,只需要显示有用的姓名和 年龄就够了。那么就在插值语法(两个中括号内做具体修改要显示的数据)。
注意:其中v-for语句里边的in也能换成of。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本列表</title>
    <!--引入vue-->
    <script type="text/javascript" src="../vue.js">
        Vue.config.productionTip = false
    </script>
    <!--上边的vue.config选项关闭了启动时生成生产提示-->
</head>

<body>
    <!--准备好一个容器-->
    <div id="root">
        <ul>
            <!--v-for使用vue代替人力做循环,遍历-->
            <!--in后边写的是一堆数据,in前边是一堆数据中的一个数据-->
            <li v-for="XianShi in persons1">{{XianShi.name}}-{{XianShi.age}}</li>
            <!--使用上边的代码后,在网页中就会自动生成三个li标签内的数据。因为data中persons1有三个数据-->
        </ul>
    </div>


    <script type="text/javascript">
        Vue.config.productionTip = false
        //创建vue实例,习惯用一个变量来接该vue实例,此处用x
        const x = new Vue({
            el: '#root',
            data() {
                return {
                    //根据person1中的数据,进行遍历,生成三个li中的显示
                    persons1: [
                        {
                            id: '001', name: '张三', age: 18
                        },
                        {
                            id: '002', name: '李四', age: 19
                        },
                        {
                            id: '003', name: '王五', age: 20
                        }
                    ]
                }
            },
        })

    </script>
</body>

</html>

在这里插入图片描述
3.v-for不仅能遍历数据中的数组形式数据。还能遍历对象类型。注意这里v-for的括号写法。其中的a和b所代替的意义。从结果图片上看,值和关键词。即value和key的值反了。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本列表</title>
    <!--引入vue-->
    <script type="text/javascript" src="../vue.js">
        Vue.config.productionTip = false
    </script>
    <!--上边的vue.config选项关闭了启动时生成生产提示-->
</head>

<body>
    <!--准备好一个容器-->
    <div id="root">
        <!--遍历数组-->
        <ul>
            <!--v-for使用vue代替人力做循环,遍历-->
            <!--in后边写的是一堆数据,in前边是一堆数据中的一个数据-->
            <li v-for="XianShi in persons1">{{XianShi.name}}-{{XianShi.age}}</li>
            <!--使用上边的代码后,在网页中就会自动生成三个li标签内的数据。因为data中persons1有三个数据-->
        </ul>
        <!--遍历对象-->
        <ul>
            <!--这里用个括号加a,b的形式写,其中a指的是value,b指的是key-->
            <li v-for="(a,b) in car">{{a}}-{{b}}</li>
        </ul>
    </div>


    <script type="text/javascript">
        Vue.config.productionTip = false
        //创建vue实例,习惯用一个变量来接该vue实例,此处用x
        const x = new Vue({
            el: '#root',
            data() {
                return {
                    //根据person1中的数据,进行遍历,生成三个li中的显示
                    persons1: [
                        {
                            id: '001', name: '张三', age: 18
                        },
                        {
                            id: '002', name: '李四', age: 19
                        },
                        {
                            id: '003', name: '王五', age: 20
                        }
                    ],
                    car: {
                        name: "奥迪A8",
                        price: "70w",
                        color: "black"
                    }
                }
            },
        })

    </script>
</body>

</html>

在这里插入图片描述
4.解决第3点中显示结果出现反的问题。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本列表</title>
    <!--引入vue-->
    <script type="text/javascript" src="../vue.js">
        Vue.config.productionTip = false
    </script>
    <!--上边的vue.config选项关闭了启动时生成生产提示-->
</head>

<body>
    <!--准备好一个容器-->
    <div id="root">
        <!--遍历数组-->
        <ul>
            <!--v-for使用vue代替人力做循环,遍历-->
            <!--in后边写的是一堆数据,in前边是一堆数据中的一个数据-->
            <li v-for="XianShi in persons1">{{XianShi.name}}-{{XianShi.age}}</li>
            <!--使用上边的代码后,在网页中就会自动生成三个li标签内的数据。因为data中persons1有三个数据-->
        </ul>
        <!--遍历对象-->
        <ul>
            <!--这里用个括号加a,b的形式写,其中a指的是value,b指的是key-->
            <li v-for="(value,k) in car" :key="k">{{k}}-{{value}}</li>
        </ul>
    </div>


    <script type="text/javascript">
        Vue.config.productionTip = false
        //创建vue实例,习惯用一个变量来接该vue实例,此处用x
        const x = new Vue({
            el: '#root',
            data() {
                return {
                    //根据person1中的数据,进行遍历,生成三个li中的显示
                    persons1: [
                        {
                            id: '001', name: '张三', age: 18
                        },
                        {
                            id: '002', name: '李四', age: 19
                        },
                        {
                            id: '003', name: '王五', age: 20
                        }
                    ],
                    car: {
                        name: "奥迪A8",
                        price: "70w",
                        color: "black"
                    }
                }
            },
        })

    </script>
</body>

</html>

在这里插入图片描述
5.v-for也可以遍历字符串,不过使用不多。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本列表</title>
    <!--引入vue-->
    <script type="text/javascript" src="../vue.js">
        Vue.config.productionTip = false
    </script>
    <!--上边的vue.config选项关闭了启动时生成生产提示-->
</head>

<body>
    <!--准备好一个容器-->
    <div id="root">
        <!--遍历数组-->
        <ul>
            <!--v-for使用vue代替人力做循环,遍历-->
            <!--in后边写的是一堆数据,in前边是一堆数据中的一个数据-->
            <li v-for="XianShi in persons1">{{XianShi.name}}-{{XianShi.age}}</li>
            <!--使用上边的代码后,在网页中就会自动生成三个li标签内的数据。因为data中persons1有三个数据-->
        </ul>
        <!--遍历对象-->
        <ul>
            <!--这里用个括号加a,b的形式写,其中a指的是value,b指的是key-->
            <li v-for="(value,k) in car" :key="k">{{k}}-{{value}}</li>
        </ul>
        <!--遍历字符串-->
        <ul>
            <!--char是字符,index是字符的索引值,索引值与key绑定,证明该索引值对应的字符是唯一的-->
            <!--当然这里的index与key绑定本来是不对的,因为这里不是列表或者其他的,只是字符串,所以没关系-->
            <li v-for="(char,index)  of str" :key="index">{{char}}-{{index}}</li>
        </ul>

    </div>


    <script type="text/javascript">
        Vue.config.productionTip = false
        //创建vue实例,习惯用一个变量来接该vue实例,此处用x
        const x = new Vue({
            el: '#root',
            data() {
                return {
                    //根据person1中的数据,进行遍历,生成三个li中的显示
                    persons1: [
                        {
                            id: '001', name: '张三', age: 18
                        },
                        {
                            id: '002', name: '李四', age: 19
                        },
                        {
                            id: '003', name: '王五', age: 20
                        }
                    ],
                    car: {
                        name: "奥迪A8",
                        price: "70w",
                        color: "black"
                    },
                    str: 'hello'
                }
            },
        })

    </script>
</body>

</html>

在这里插入图片描述

总结

V- for指令:
1.用于展示列表数据
2.语法: v-for="(item, index) in XXX" :key= “yyy”
3.可遍历:数组、对象、字符串(用的很少)、指定次数(用的很少)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值