如何在特定索引处启动v-for循环

Ras*_*itu 8 javascript vue.js vuejs2

如何v-for在特定索引处开始循环。

示例:给定的数组 array = [a,b,c,d,e,f];

我想使用v-for将从第3个元素开始循环的循环。谢谢 :)

小智 6

只需使用标准切片方法:

new Vue({
  el: '#app',
  data: {
    items: [
      'aaa',
      'bbb',
      'ccc',
      'ddd',
      'eee',
      'fff'
    ]
  }
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@2.4.2/dist/vue.min.js"></script>

<div id="app">
  <ul>
    <li v-for="item in items.slice(2)">{{ item }}</li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

PS:或v-for与v-if:

new Vue({
  el: '#app',
  data: {
    items: [
      'aaa',
      'bbb',
      'ccc',
      'ddd',
      'eee',
      'fff'
    ]
  }
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@2.4.2/dist/vue.min.js"></script>

<div id="app">
  <ul>
    <li v-for="(item, index) in items" v-if="index >= 2">{{ item }}</li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

或具有自定义功能:

new Vue({
  el: '#app',
  data: {
    items: [
      'aaa',
      'bbb',
      'ccc',
      'ddd',
      'eee',
      'fff'
    ]
  },
  methods: {
    startFrom (arr, idx) {
      return arr.slice(idx)
    }
  }
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@2.4.2/dist/vue.min.js"></script>
    
<div id="app">
  <ul>
    <li v-for="item in startFrom(items, 2)">{{ item }}</li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

  • `[vue/no-use-v-if-with-v-for]` 'v-for' 指令中的 'undefined' 变量应该替换为返回过滤数组的计算属性。您不应将“v-for”与“v-if”混用。 (2认同)