Vue.js 循环语句

循环使用 v-for 指令。

v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名。

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: 'Codebaoku' },
      { name: 'Google' },
      { name: 'Taobao' }
    ]
  }
})
</script>

我要试一试

模板中使用 v-for:

<ul>
  <template v-for="site in sites">
    <li>{{ site.name }}</li>
    <li>--------------</li>
  </template>
</ul>

我要试一试

 

1. 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.codebaoku.com',
      slogan: '技术改变世界!'
    }
  }
})
</script>

我要试一试

你也可以提供第二个的参数为键名:

<div id="app">
  <ul>
    <li v-for="(value, key) in object">
    {{ key }} : {{ value }}
    </li>
  </ul>
</div>

我要试一试

第三个参数为索引:

<div id="app">
  <ul>
    <li v-for="(value, key, index) in object">
     {{ index }}. {{ key }} : {{ value }}
    </li>
  </ul>
</div>

我要试一试

 

2. v-for 迭代整数

v-for 也可以循环整数。

<div id="app">
  <ul>
    <li v-for="n in 10">
     {{ n }}
    </li>
  </ul>
</div>

我要试一试

计算属性的关键词为 computed,当其依赖的属性的值发生变化时,计算属性会重新计算,反之,则使用缓存中的属性值,计算属性在处理一些复杂逻辑时是很有用的。为什么要使用 computed 呢?我们知道,在模板内使用表达式非常普遍的,但是,在模板内的放入太多逻辑的表达式,会使得模板变得很重,难于维护。