列表渲染是前端经常用到的代码,在vue中用v-for做列表渲染。

1.基础用法

首先我们构造一个json数据,

[
    {
        "name":"张三1",
        "sex":"男",
        "age":12
    },
    {
        "name":"张三2",
        "sex":"女",
        "age":31
    },
    {
        "name":"张三4",
        "sex":"男",
        "age":43
    },
    {
        "name":"张三3",
        "sex":"男",
        "age":13
    }
]

然后通过下面的代码进行遍历:

 <div>
            <li v-for="i in list">
                {{i.name}}  --{{i.sex}}--{{i.age}}      
            </li>
  </div>

效果图:

完整代码如下:

<!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>vue测试</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>

</head>

<body>
    <div id="root">
        <div>
            <li v-for="i in list">
                {{i.name}}  --{{i.sex}}--{{i.age}}      
            </li>
        </div>

    </div>

    <script type="text/javascript">
        new Vue({
            el: '#root',
            data: {
                list: [
                    {
                        "name": "张三1",
                        "sex": "男",
                        "age": 12
                    },
                    {
                        "name": "张三2",
                        "sex": "女",
                        "age": 31
                    },
                    {
                        "name": "张三4",
                        "sex": "男",
                        "age": 43
                    },
                    {
                        "name": "张三3",
                        "sex": "男",
                        "age": 13
                    }
                ]
            },
        })
    </script>
</body>
</html>
2.带key值的写法
  <div>
            <li v-for="(i,index) in list" :key="index">
                {{i.name}}  --{{i.sex}}--{{i.age}}--{{index}}      
            </li>
  </div>

比较推荐这种写法,实际开发中,返回的json数据如果没有唯一标识,将会是一场灾难!!

效果图:

3.数值与对象的区别

除了可以遍历数组之外,还可以遍历对象,比如下面这样的数据:

 list2:{
                    name:"张三",
                    sex:"男",
                    age:"12",
                }

遍历形式改成这样

<div>
            <li v-for="(value,index) in list2" :key="index">
                {{index}}  --{{value}}    
            </li>
        </div>

效果如下:

注意:遍历对象的时候,(value,index),前者是value,后者是key。不要写反。

分类: 前端