[vue] 列表排序

<div id="root">
	<h2>人员列表</h2>
	<input type="text" placeholder="请输入名字" v-model="keyWord">
	<button @click="sortType = 2">年龄升序</button>
	<button @click="sortType = 1">年龄降序</button>
	<button @click="sortType = 0">原顺序</button>
	<ul>
		<li v-for="(p,index) of filPerons" :key="p.id">
			{{p.name}}-{{p.age}}-{{p.sex}}
			<input type="text">
		</li>
	</ul>
</div>
new Vue({
	el:'#root',
	data:{
		keyWord:'',
		sortType:0, //0原顺序 1降序 2升序
		persons:[
			{id:'001',name:'马冬梅',age:30,sex:'女'},
			{id:'002',name:'周冬雨',age:31,sex:'女'},
			{id:'003',name:'周杰伦',age:18,sex:'男'},
			{id:'004',name:'温兆伦',age:19,sex:'男'}
		]
	},
	computed:{
		filPerons(){
			const arr = this.persons.filter((p)=>{
				return p.name.indexOf(this.keyWord) !== -1
			})

			return arr
		}
	}
}) 

在这里插入图片描述

new Vue({
	el:'#root',
	data:{
		keyWord:'',
		sortType:0, //0原顺序 1降序 2升序
		persons:[
			{id:'001',name:'马冬梅',age:30,sex:'女'},
			{id:'002',name:'周冬雨',age:31,sex:'女'},
			{id:'003',name:'周杰伦',age:18,sex:'男'},
			{id:'004',name:'温兆伦',age:19,sex:'男'}
		]
	},
	computed:{
		filPerons(){
			const arr = this.persons.filter((p)=>{
				return p.name.indexOf(this.keyWord) !== -1
			})
			console.log(arr)
			
			// 判断一下是否需要排序
			// sort改变原数组
			if(this.sortType){
				arr.sort((p1,p2)=>{
					return this.sortType === 1 ? p2.age-p1.age : p1.age-p2.age
				})
			}
			console.log(arr)

			return arr
		}
	}
}) 

arr.sort((a,b)=>{return a-b}) 升序

在这里插入图片描述






[前端VUE3.0,DAY20,列表排序](https://blog.csdn.net/weixin_48681463/article/details/120000536)
Vue Upload中,可以通过对附件列表进行排序来实现。根据提供的代码引用,附件列表是通过v-for指令渲染的,即v-for="(item, index) in form.mainPic"。如果想要对附件列表进行排序,可以在data属性中添加一个新的数组变量,将form.mainPic的数据复制到这个新的数组中,然后对这个新数组进行排序。在模板中,使用这个新数组进行渲染。例如: ```html <div v-for="(item, index) in sortedMainPic" :key="index" class="small-img" v-show="sortedMainPic.length <= 5"> <img :src="`${ip}${item}`" width="100%" height="100%" /> <i class="el-icon-delete-solid img-delbtn" @click="delImg(index)"></i> </div> ``` 在Vue实例的data属性中,添加sortedMainPic数组和一个排序方法: ```javascript data() { return { form: { mainPic: [], // 附件列表 }, sortedMainPic: [], // 排序后的附件列表 }; }, methods: { // 在需要的时候调用此方法,对sortedMainPic进行排序 sortMainPic() { this.sortedMainPic = [...this.form.mainPic].sort(); }, // 其他方法... }, ``` 通过调用sortMainPic方法,可以对附件列表进行排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Vue-components封装组件](https://blog.csdn.net/weixin_58099903/article/details/124533490)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue中使用sortable插件实现拖拽 upload上传图片改变顺序](https://blog.csdn.net/qq_48930299/article/details/118020510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值