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

    技术2022-07-11  103

    遍历普通数组

    <!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>
    Processed: 0.011, SQL: 9