Vue——09——v-for和key指令

遍历普通数组

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../lib/vue.js"></script>

</head>

<body>
    <!-- 对象就是无序键值对的集合   属性有杠-就必须要加单引号,这是属性里键的规定-->
    <div id="app">
        <p v-for="(item,i) in list">索引值:{{i}}---每一项:{{item}}</p>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                list:[1,2,3,4,5,6],
            },
            methods: {

            }
        })
    </script>
</body>

</html>

遍历对象数组

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../lib/vue.js"></script>

</head>

<body>
    <!-- 对象就是无序键值对的集合   属性有杠-就必须要加单引号,这是属性里键的规定-->
    <div id="app">
        <p v-for="(user,i) in list">索引值:{{i}}---ID:{{user.id}}---name:{{user.name}}</p>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                list:[
                    {id:1,name:'ajax'},
                    {id:2,name:'json'},
                    {id:3,name:'html'},
                    {id:4,name:'vue'},
                    {id:5,name:'html'}
                ]
            },
            methods: {

            }
        })
    </script>
</body>

</html>

遍历对象

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../lib/vue.js"></script>

</head>

<body>
    <!-- 在遍历对象身上的键值对的时候,除了有val key,在第三个位置还有一个索引-->
    <div id="app">
        <p v-for="(val,key,i) in list">值:{{val}}---键:{{key}}---id:{{i}}</p>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                list:{
                    name:"马云",
                    age:18,
                    class:1,

                }
            },
            methods: {

            }
        })
    </script>
</body>

</html>

迭代数字

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../lib/vue.js"></script>

</head>

<body>
    <!-- in后面还可以放数字,代表循环多少次  如果使用v-for迭代数字,前面的count从1开始 -->
    <div id="app">
        <p v-for="(count) in 10">这是第{{count}}次循环</p>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
            
            },
            methods: {

            }
        })
    </script>
</body>

</html>

key的用法

因为vue中它默认使用“就地更新”的策略,最少化的渲染。此时为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../lib/vue.js"></script>

</head>

<body>
    <!-- v-for循环的时候,key属性只能使用number或string-->
    <!-- key在使用的时候,必须使用v-bind属性绑定的形式,指定key的值 -->
<!-- 在组件中,使用v-for循环的时候,或者在一些特殊情况中,如果v-for有问题,必须在使用v-for的同时,指定唯一的字符串/数字类型:key值 -->

    <div id="app">
        id:<input type="text" v-model="id">
        name:<input type="text" v-model="name">
        <input type="button" value="添加" @click="add">
        <!--给每个都指定一个key key等于一个唯一标识符 不能用对象item,只能用number获取-->
        <p v-for="item in list" v-bind:key="item.id">
            <input type="checkbox">
            id:{{item.id}}---名字:{{item.name}}</p>
    </div>
    <!-- <script> -->
    var vm = new Vue({
    el: "#app",
    data: {
    id:'',
    name:'',
    list:[
    {id:1,name:'李斯'},
    {id:2,name:'赵高'},
    {id:3,name:'秦始皇'},
    {id:4,name:'李白'},
    {id:5,name:'赵飞'},
    ]
    },
    methods: {
    add(){
    this.list.unshift({id:this.id,name:this.name})
    }
    }
    })
    </script>
</body>

</html>

猜你喜欢

转载自blog.csdn.net/x1037490413/article/details/107067595