比如数组为['a','b','c','d']
我用v-for时,想把'b','c'放在前面,该怎么实现?
使用filter过滤来修改,并且改变保持原始数据
<template>
<div>
<ul>
<li v-for="item in list|customOrder">{{item}}</li>
</ul>
</div>
</template>
<script>
export default {
data(){
return {
list: ["a","b","c","d"]
}
},
filters: {
customOrder(list){
let first = list.shift();
let last = list.pop();
list.push(first);
list.push(last);
return list;
}
}
}
</script>
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答5k 阅读
可以好好看看vue列表渲染里面的关于
显示过滤/排序结果
的说法,可以再不修改数组或者对象的情况下,进行显示的排序修改,所以你可以不修改这个原本的数组,返回一个已经排序的数组副本,来进行展示,也就是v-for遍历的是一个计算属性或者函数,返回的结果是排序后的数组即可。这样既不会影响原数组,又可以在展示的时候经过了你想要的排序。