我如何通过v-for X(例如10)次重复一个循环?

<!-- want to repeat this (e.g.) 10 times -->

<ul>
  <li v-for="item in shoppingItems">
    {{ item.name }} - {{ item.price }}
  </li>
</ul>

文档显示:

<ul>
  <li v-for="item in 10">{{ item }}</li>
</ul>

<!-- or -->

<li v-for="n in 10">{{ n }} </li>

<!-- this doesn't work -->

<li v-for="item in 10">{{ item.price }}</li>

但是vue从哪里知道这些对象的来源呢? 如果我像文档说的那样渲染它,我得到了项目和项目的数量,但没有内容。


当前回答

如果你想要循环x次,你可以简单地使用以下命令:

<div v-for="(item, index) in 10" :key="index">{{ item }}</div>

其他回答

<ul v-for="(item, index) in items.slice(0,10)" :key="item.index">
<li>
 {{item.name}}-{{item.price}}
</li>
</ul>

第一个版本

// I expect your data like this
shoppingItems: [
  {
    name: "Clothes A",
    price: 1000
  },
  {
    name: "Clothes B",
    price: 5000
  },
  {
    name: "Clothes C",
    price: 20000
  }
]

<ul>
  // The item in here means each object in shoppingItems
  <li v-for="item in shoppingItems"> 
    {{ item.name }} - {{ item.price }}
  </li>
</ul>

上面的示例代码用于循环shoppingItems中的每个项目

第二个版本

<ul>
  // The index will start form 0 until 10 - 1
  <li v-for="index in 10"> 
    {{ shoppingitems[index].name }} - {{ shoppingitems[index].price }}
  </li>
</ul>

我在Dov Benjamin的帮助下解决了这个问题

<ul>
  <li v-for="(n,index) in 2">{{ n }}, {{ index }}</li>
</ul>

注意,在这种情况下,n是1索引,index是0索引。

另一种方法,对于两个V1。X和2。vue.js的X

Vue 1:

<p v-for="item in items | limitBy 10">{{ item }}</p>

Vue2:

// Via slice method in computed prop

<p v-for="item in filteredItems">{{ item }}</p>

computed: {
   filteredItems: function () {
     return this.items.slice(0, 10)
     }
  }

这对我有用。

<li v-for="(index,key) in data.slice(0,5)" :key="key">{{ index.title }}</li>

解决方案1:

<p v-for="i in 5" :key="i">{{ i }}</p>

记住,结果是1-5。

解决方案2: 如果你想在数组中显示有限数量的元素。你应该使用JavaScript的slice()方法。

<p v-for="i in usersList.slice(0,5)" :key="i">{{ i }}</p>