Vue v-for 指令

使用普通的 JavaScript,您可能希望基于数组创建 HTML 元素。您使用 for 循环,在循环中您需要创建元素,调整它们,然后将每个元素添加到页面中。这些元素不会对数组中的变化做出反应。

使用 Vue,您可以从要创建到列表中的HTML元素开始,使用 v-for 作为属性,引用 Vue 实例中的数组,并让 Vue 处理其余部分。使用 v-for 创建的元素将在数组更改时自动更新。


列表渲染

Vue 中的列表呈现是通过使用 v-for 指令完成的,因此使用 for 循环创建了几个 HTML 元素。

下面是使用 v-for 的三个略有不同的示例。

实例

显示基于数组项的列表。

  1. <ol>
  2. <li v-for="x in manyFoods">{{ x }}</li>
  3. </ol>

循环数组

循环遍历数组以显示不同的图片:

实例

基于 Vue 实例中的数组显示食物的图片。

  1. <div>
  2. <img v-for="x in manyFoods" v-bind:src="x">
  3. </div>

循环数组对象

循环数组中的对象,显示其属性:

实例

根据 Vue 实例中的数组显示不同类型食物的图片和名称。

  1. <div>
  2. <figure v-for="x in manyFoods">
  3. <img v-bind:src="x.url">
  4. <figcaption>{{ x.name }}</figcaption>
  5. </figure>
  6. </div>

获取索引

数组元素的索引号在 JavaScript 中对循环非常有用。幸运的是,当在 Vue 中使用 v-for 时,我们也可以获得索引号。

要获得带 v-for 的索引号,我们需要在括号中给出两个逗号分隔的单词:第一个单词将是数组元素,第二个单词将为该数组元素的索引。

实例

显示 Vue 实例中 "manyFoods" 数组中元素的索引号和食品名称。

  1. <p v-for="(x, index) in manyFoods">
  2. {{ index }}: "{{ x }}" <br>
  3. </p>

如果数组元素是对象,我们还可以显示数组元素索引和数组元素本身的信息:

实例

显示数组元素索引号和 "manyFoods" 数组中对象的文本。

  1. <p v-for="(x, index) in manyFoods">
  2. {{ index }}: "{{ x.name }}", url: "{{ x.url }}" <br>
  3. </p>