vue简单实现查询排序功能

Posted 老张在线敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue简单实现查询排序功能相关的知识,希望对你有一定的参考价值。

<template>

    <div>
        <input type="text" v-model="searchName" minlength="1" maxlength="10">
        <ul>
            <li v-for="(item,index) in filterList" :key="index">
                {{item.name}}--{{item.age}}
            </li>
        </ul>
        <button @click="setSortName(1)">年龄升序</button>
        <button @click="setSortName(2)">年龄降序</button>
        <button @click="setSortName(0)">原本顺序</button>
    </div>
</template>
<script>
    export default{
        data(){
            return{
                list:[
                    {name:"张一",age:21},
                    {name:"高二",age:20},
                    {name:"张三",age:35},
                    {name:"高五",age:34}
                ],
                searchName:"", //input框输入的值
                sortName:0//0代表原本顺序  1代表升序  2代表降序
            }
        },
        computed:{
            filterList(){
                // 取出相关的数据
                const {searchName,list,sortName} = this
                // 对list进行过滤
                let nList;
                nList = list.filter(item=>item.name.indexOf(searchName)!==-1)
                //排序
                if(sortName!==0){
                    nList.sort(function(left,right){
                        //如果返回负数let在前,正数right在前
                        if(sortName===2){
                            return right.age-left.age//降序
                        }else{
                            return left.age-right.age//升序
                        }
                    })
                }
                return nList
            }
        },
        methods:{
           setSortName(sortName){
               this.sortName = sortName
           }
        }
    }
</script>

以上是关于vue简单实现查询排序功能的主要内容,如果未能解决你的问题,请参考以下文章

vue简单实现购物车的全部功能

vue2.0 代码功能片段

Vue + Sass 实现简单的换肤功能

vue3保存筛选条件

springmvc 分页查询的简单实现

使用带有渲染功能的 Vue.js 3 片段