Heim > Fragen und Antworten > Hauptteil
v-for="n in 10" Wie implementiert man die Sortierung? Der Standardwert ist 1 bis 10. Wie implementiert man die Sortierung von 10 bis 1?
巴扎黑2017-05-19 10:27:39
题主没有写vue标签但是我看到了v-for指令.题主应该是问怎么用vue实现1-10倒序排列。
假设有如下一个vue组件
var vm = new Vue({
el: '#app',
template: `
<ul>
<li v-for="item in arr">loop {{item}}</li>
</ul>
`,
filters: {
},
data() {
return {
arr:10,
}
},
})
1.采用filter
filters: {
sort(v) {
if (!v)
return ''
else {
return 11 - v
}
},
template:`<ul><li v-for="item in arr">{{item|sort}}</li></ul>`
2.采用vue方法
template: `
<ul>
<li v-for="item in arr">{{reverseNumber(item)}}</li>
</ul>
`,
methods: {
reverseNumber(x) {
return 11 - x
},
}
这样的循环一个数字是没有办法采用计算属性的,计算属性是data
中一个值改变后,把他映射到另外一个值相当于一个函数,而v-for
是循环了列表的数据相当于一个迭代器,并没有改变数据data的某个属性值。
建议你循环一个数组或对象,不要直接循环数字。除非逻辑真的很简单,就是循环生成几个标签。把一个数组元素排序你还可以采用,sort()传入倒序排序函数,这样就可以用计算属性,先映射排序数组到计算属性,然后v-for
循环倒序排列的计算属性。也可以实现倒序排列。
仅有的幸福2017-05-19 10:27:39
<select>
<option v-for="n in 21" :value="22-n">{{22-n}}</option>
</select>
<select>
<option v-for="n in 21" :id="22-n">{{22-n}}</option>
</select>
这两段,为什么上面这个value值就没有用,而id就可以呢?