请问在 vue 2 中如何能在 v-for 对象情况下根据对象某个 key 来排序列表呢?

2017-05-22 22:39:36 +08:00
 gap

由于数据结构的原因,v-for 的是对象属性,每个属性又是一个对象,现在希望让列表按 order 这个属性进行排序,请问能做到吗?

const objects = {
  prop1: { text: 'a', order: 3 },
  prop2: { text: 'c', order: 1 },
  prop3: { text: 'b', order: 2 },
}
<template v-for="(value, key) in objects">
  <div>{{ value.text }}</div>
</template>

希望的 output

c
b
a
3869 次点击
所在节点    Vue.js
4 条回复
zzetao
2017-05-22 22:48:33 +08:00
Biwood
2017-05-22 22:52:43 +08:00
手动给数据排序也不是什么麻烦事,新建一个数组,用 order 作为索引并赋值对应的值
Sparetire
2017-05-23 08:23:37 +08:00
用计算属性吧
470326964
2017-06-02 13:52:48 +08:00
计算属性返回值,然后拿返回值去遍历。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363073

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX