Vue v-for列表循环

v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。

v-for的关键词in可以用of来替代

v-for循环数组

<ul id="example-1">
  <li v-for="item in items">
    {{ item.message }}
  </li>
</ul>
var example1 = new Vue({
  el: '#example-1',
  data: {
    items: [
      { message: 'Foo' },
      { message: 'Bar' }
    ]
  }
})

在循环数组的情况下for还可以支持俩个参数,除了item外还有index索引,另外for循环的时候该元素可以正常访问vue其它属性

<ul id="example-2">
  <li v-for="(item, index) in items">
    {{ parentMessage }} - {{ index }} - {{ item.message }}
  </li>
</ul>
var example2 = new Vue({
  el: '#example-2',
  data: {
    parentMessage: 'Parent',
    items: [
      { message: 'Foo' },
      { message: 'Bar' }
    ]
  }
})

v-for循环对象

(这里的遍历对象是遍历一个对象的所有属性)

<ul id="v-for-object" class="demo">
  <li v-for="value in object">
    {{ value }}
  </li>
</ul>
new Vue({
  el: '#v-for-object',
  data: {
    object: {
      title: 'How to do lists in Vue',
      author: 'Jane Doe',
      publishedAt: '2016-04-10'
    }
  }
})

v-for循环对象最多可以传入三个参数分别是value、name、index(其中name和index为可选项)

<div v-for="(value, name, index) in object">
  {{ index }}. {{ name }}: {{ value }}
</div>

维护状态(不太理解)

大概理解的意思是Vue更新使用v-for渲染的列表的时候,并不会通过移动Dom元素的方式进行,而是通过更新的每一个元素的方式进行…具体的看文档吧,总之教程表达的意思就是用v-for的时候尽量带上key属性(key的值需要时js基本类型)。如下:

<div v-for="item in items" v-bind:key="item.id">
  <!-- 内容 -->
</div>

这个key属性我带入代码中试了一把,在页面上是找不到这个属性的…不知道为啥

发布了71 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/NaXieNianWoMenYiQ/article/details/104825737