Vue.js 循环语句
循环使用 v-for 指令。
v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名。
v-for 可以绑定数据到数组来渲染一个列表:
v-for 指令
<div id="app">
  <ol>
    <li v-for="site in sites">
      {{ site.name }}
    </li>
  </ol>
</div>
 
<script>
new Vue({
  el: '#app',
  data: {
    sites: [
      { name: 'Runoob' },
      { name: 'Google' },
      { name: 'Taobao' }
    ]
  }
})
</script>
尝试一下 »
模板中使用 v-for:
v-for
<ul>
  <template v-for="site in sites">
    <li>{{ site.name }}</li>
    <li>--------------</li>
  </template>
</ul>
尝试一下 »
v-for 迭代对象
v-for 可以通过一个对象的属性来迭代数据:
v-for
<div id="app">
  <ul>
    <li v-for="value in object">
    {{ value }}
    </li>
  </ul>
</div>
 
<script>
new Vue({
  el: '#app',
  data: {
    object: {
      name: '菜鸟教程',
      url: 'http://www.runoob.com',
      slogan: '学的不仅是技术,更是梦想!'
    }
  }
})
</script>
尝试一下 »
你也可以提供第二个的参数为键名:
v-for
<div id="app">
  <ul>
    <li v-for="(value, key) in object">
    {{ key }} : {{ value }}
    </li>
  </ul>
</div>
尝试一下 »
第三个参数为索引:
v-for
<div id="app">
  <ul>
    <li v-for="(value, key, index) in object">
     {{ index }}. {{ key }} : {{ value }}
    </li>
  </ul>
</div>
尝试一下 »
v-for 迭代整数
v-for 也可以循环整数
 
       
wally
177***86076@139.com
<div id="app"> <ul> <li v-for="n in [1,3,5]"> {{ n }} </li> </ul> </div>尝试一下 »
wally
177***86076@139.com
锋
cka***ng@qq.com
参考地址
v-for 默认行为试着不改变整体,而是替换元素。迫使其重新排序的元素,你需要提供一个 key 的特殊属性:
<div v-for="item in items" :key="item.id"> {{ item.text }}</div>锋
cka***ng@qq.com
参考地址
boser
602***724@qq.com
不仅如此,在迭代属性输出的之前,v-for会对属性进行升序排序输出:
new Vue({ el: '#app', data: { object: { 2: '学的不仅是技术,更是梦想!', 1: '菜鸟教程', 0: 'http://www.runoob.com' } } })尝试一下 »
输出:
boser
602***724@qq.com
hunterfall
777***21@qq.com
遍历对象的时候可以处理嵌套。
<div id="app"> <ul> <li v-for="(value,key,index) in object"> <p v-if="typeof value !='object'">{{value}}....{{ index }}</p> <p v-else>{{key}}....{{index}}</p> <ul v-if="typeof value == 'object'"> <li v-for="(value, key, index) in value"> {{key}}:{{value}}....{{ index }} </li> </ul> </li> </ul> </div>尝试一下 »
hunterfall
777***21@qq.com
某人
767***68@qq.com
九九乘法是程序员的最爱:
<div id="app"> <div v-for="n in 9"> <b v-for="m in n"> {{m}}*{{n}}={{m*n}} </b> </div> </div>尝试一下 »
某人
767***68@qq.com