javascript - 使用 v-for 时的顺序

标签 javascript vue.js v-for

当使用 v-for 迭代数组时,如下所示:

<ul id="example-1">
  <li v-for="item in items">
     {{ item.message }}
  </li>
</ul>

元素按顺序排列在彼此下方:

  • 列出索引为 1 的项目
  • 列出索引为 2 的项目
  • 列出带有索引的项目...
  • 列出索引为 n 的项目

有没有办法将当前迭代中的项目添加到最后一个项目之上?

  • 列出索引为 n 的项目
  • 列出带有索引的项目...
  • 列出索引为 2 的项目
  • 列出索引为 1 的项目

非常感谢!

最佳答案

您可以使用第二个数组来“存储”反转数据并使用 unshift (而不是 push)将每个新元素放在“反转”数组的开头:

new Vue({
  el: "#app",
  data() {
    return {
      items: ["item 1", "item 2", "item 3"],
      reversedItems: []
    } 
  },
  mounted() {
    this.reversedItems = this.items.reverse()
  },
  methods: {
    loadItem(){
      let i = this.items.length
      this.items.unshift("item " + (i + 1))
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<div id="app">
  <ul>
    <li v-for="item in reversedItems">{{ item }}</li>
  </ul>
  <button @click="loadItem">Load item</button>
</div>

关于javascript - 使用 v-for 时的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50545818/

相关文章:

JavaScript:当元素在视口(viewport)中时使用 animate.css 添加类

javascript - 重新排序计算数组上的索引?

javascript - 数据错误() : "TypeError: Cannot read property ' length' of undefined"(Vue. js)

javascript - Selenium Webdriver for 循环打开许多浏览器,不等待函数完成

javascript - 无法访问上传的图像 - Meteor GridFS

javascript - 在 HIghchart 条形图上添加颜色渐变颜色

javascript - 如何在vueJs中获取vue元素调用方法

vue.js - 在条件下添加 vue 指令

javascript - 如何使用 v-for 迭代元素

javascript - Vue - 在 v-for 语法中使用 prop