Vue之列表过滤

1.模糊查询

        1.通过v-model进行双向匹配,获取输入的数据

        2.匹配

<script>
//    用watch实现

    // new Vue({
    //     el:'#root',
    //     data: {
    //         keyword:'',
    //         persons: [
    //             {id: '001', name: '马冬梅', age: 35},
    //             {id: '002', name: '周杰伦', age: 40},
    //             {id: '003', name: '杨kw', age: 20},
    //             {id: '003', name: '小鸟酱', age: 18}
    //         ],
    //         filpersons:[],
    //     },
    //     watch:{
    //         keyword:{
    //
    //             handler(val)
    //             {
    //                 this.filpersons = this.persons.filter((p) => {
    //                     return p.name.indexOf(val) !== -1
    //                 })
    //             }
    //         }
    //     }
    //
    // })

new Vue({
    el:'#root',
    data: {
        keyword:'',
        persons: [
            {id: '001', name: '马冬梅', age: 35},
            {id: '002', name: '周杰伦', age: 40},
            {id: '003', name: '杨kw', age: 20},
            {id: '003', name: '小鸟酱', age: 18}
        ],
    },
    computed:{
        filpersons(){
            return this.persons.filter((p) => {
                return p.name.indexOf(this.keyword) !== -1
            })

        }
    }

})



</script>

 2.列表排序

    <div id="root">
        <input type="text" placeholder="请输入名字" v-model="keyword">
        <button @click="sorttype=2">升序</button>
        <button @click="sorttype=1">降序</button>
        <button @click="sorttype=0">原</button>
        <ul>
<!--            key:相当于身份证-->
            <li v-for="(person,index) in filpersons" :key="index">
                {{person.name}}-{{person.age}}
            </li>
        </ul>
    </div>

<script>
    new Vue({
        el:'#root',
        data: {
            keyword:'',
            sorttype:0,//0原顺序,2升序,1降序
            persons: [
                {id: '001', name: '马冬梅', age: 35},
                {id: '002', name: '周杰伦', age: 40},
                {id: '003', name: '杨kw', age: 20},
                {id: '003', name: '小鸟酱', age: 18}
            ],
        },
        computed:{
            filpersons(){
                const arr=this.persons.filter((p) => {
                    return p.name.indexOf(this.keyword) !== -1
                })
                if(this.sorttype){
                    arr.sort((p1,p2)=>{
                        return this.sorttype ===1 ? p2.age-p1.age :p1.age-p2.age
                    })
                }
                return arr
            },

        }

    })
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值