vue中列表过滤

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>列表过滤</title>
	<script type="text/javascript" src="./vuebasic/vue.js"></script>
</head>
<body>
	
	<div id="root" >
        <h1>模糊搜索</h1>
        <input type="text" placeholder="请输入名字" v-model="keyWords">
        <h6>第2种方法处理结果</h6>
        <ul>    
            <li v-for="(people,index) in filpepple" :key="people.id">
                {{ people.name }} ==> {{ people.gender}}
            </li>
        </ul>

        <h6>第1种方法处理结果</h6>
        <ul>
            
            <li v-for="(people,index) in fliterName" :key="people.id">
                {{ people.name }} ==> {{ people.gender}}
            </li>
        </ul>
	</div>
	
	<script>
	
	
		Vue.config.productionTip = false;//以阻止 vue 在启动时生成生产提示。
        new Vue({
		    el:'#root',
            data:{
                keyWords:'',
                peoples:[
                    {'id':'1','name':'张曼玉','gender':'女'},
                    {'id':'2','name':'张雨生','gender':'男'},
                    {'id':'3','name':'林雨申','gender':'男'},
                    {'id':'4','name':'佟湘玉','gender':'女'}
                ],
                filpepple:[

                ]
            },
            // 第1中处理方法,使用计算属性来操作
            computed:{
                fliterName(){
                    return this.peoples.filter((p)=>{
                       return p.name.indexOf(this.keyWords) !== -1
                    })
                }
            },

            // 第2种处理方法,使用监听方式
            watch:{
                /*
                keyWords(newValue,oldValue){
                    this.filpepple = this.peoples
                    this.filpepple = this.filpepple.filter((p)=>{
                        return p.name.indexOf(newValue) !== -1
                    })
                }*/
                keyWords:{
                    // 在关键字没有进行更改之前初始化的时候就会进行一次监视
                    // indexof会匹配任意空格返回的结果都是0非负数,在这里就会都会匹配出来
                    immediate:true,
                    handler(newValue){
                        this.filpepple = this.peoples
                        this.filpepple = this.filpepple.filter((p)=>{
                            return p.name.indexOf(newValue) !== -1
                        })
                    }
                }
            }
	   })
	</script>
</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gjanuary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值