五、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: 'Baidu' },
      { name: 'Alibaba' },
      { name: 'Tencent' }
    ]
  }
})
</script>

模板中使用 v-for:

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

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: 'Baidu',
      url: 'http://www.baidu.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>

v-for 迭代整数

v-for 也可以循环整数

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

v-for 还可以循环数组:

<div id="app">
<ul>
    <li v-for="n in [1,3,5]">
     {{ n }}
    </li>
  </ul>
</div>

v-for 默认行为试着不改变整体,而是替换元素。迫使其重新排序的元素,你需要提供一个 key 的特殊属性:

<div v-for="item in items" :key="item.id">  {{ item.text }}</div>

不仅如此,在迭代属性输出的之前,v-for会对属性进行升序排序输出

<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>

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

<script>
new Vue({
  el: '#app',
  data: {
    object: {
      2: '百度一下 你就知道',
      1: '百度',
      0: 'http://www.baidu.com'
    }
  }
})
</script>

 

posted @ 2018-01-12 15:54  journeyIT  阅读(8)  评论(0编辑  收藏  举报