v-for的用法
//js中的foreach [5,7,9].forEach((item,i)=>{console.log(item+'+'+i)})

普通数组
<div id="app"> <!-- value和i为自定义名称,可以改,意义不变 --> <p v-for="(value,i) in list">索引值:{{i}} 每一项是:{{value}}</p> </div> <script > var vm = new Vue({ el:'#app', data:{ list:[1,2,3,4,5,6] }, methods:{ } }) //[5,7,9].forEach((item,i)=>{console.log(item+'+'+i)}) </script>

对象数组
<div id="app"> <!-- value和i为自定义名称,可以改,意义不变 --> <p v-for="user in list2">id:{{user.id}} name:{{user.name}}</p> <!-- 可以查看索引值 --> <p v-for="(user,i) in list2">id:{{user.id}} name:{{user.name}} 索引值{{i}}</p> </div> <script > var vm = new Vue({ el:'#app', data:{ list:[1,2,3,4,5,6], list2:[ { id:1,name:'xzy1'}, { id:2,name:'xzy2'}, { id:3,name:'xzy3'}, { id:4,name:'xzy4'}, ] }, methods:{ } })

循环对象
<div id="app"> <!-- 在遍历对象身上的键和值的时候,除了有值,键,在第三个位置还有索引 --> <p v-for="(val,key,i) in userr">值是:{{val}} 键是:{{key}} 索引值是:{{i}}</p> </div> <script > var vm = new Vue({ el:'#app', data:{ list:[1,2,3,4,5,6], list2:[ { id:1,name:'xzy1'}, { id:2,name:'xzy2'}, { id:3,name:'xzy3'}, { id:4,name:'xzy4'}, ], userr:{ id:1, name:'xzy!', gender:'女' } }, methods:{ } })

迭代数字
<div id="app"> <!-- in后面能放数字,但是count从1开始 --> <p v-for="count in 10">第{{count}}次循环</p> </div>

- v-for要写在循环生成的元素上,不能写在父元素里
- 当new Vue()扫瞄到v-for,自动遍历of后数组中每个元素,每遍历一个元素,创建一个当前html元素的副本
- value和i的使用范围仅限于当前元素及其子元素范围内,不能在当前元素外使用
v-for的注意事项
当在组件中使用v-for时,key属性必需,对比如下:
当不使用key属性时,选中大二,然后在list数组的起始位置增加一个对象(使用unshift),增加完成后,checkbox变成选中大一。
<body>
<div id="app">
<div>
<label>ID:<input type="text" v-model="id"></label>
<label>Name:<input type="text" v-model="name"></label>
<input type="button" value="添加" v-on:click="add()">
</div>
<p v-for="item in list2">
<input type="checkbox">
{{item.name}}
</p>
</div>
<script >
var vm = new Vue({
el:'#app',
data:{
name:'',
id:'',
list2:[
{ id:1,name:'大一'},
{ id:2,name:'大二'},
{ id:3,name:'大三'},
{ id:4,name:'大四'},
]
},
methods:{
add(){
this.list2.unshift({id:this.id,name:this.name})
}
}
})
</script>


使用key之后
在组件中,使用v-for循环的时候,或者在一些特殊情况下,如果v-for有问题,必需在使用v-for的同时指定唯一的:key值
<p v-for="item in list2" v-bind:key='item'>

