过滤之监听属性实现

过滤之监听属性实现

    <body>
        <div id="root">
            <h2>人员列表</h2>
            <input type="text" placeholder="请输入名字" v-model="keyWord">
            <ul>
                <li v-for="(p,index) of filPerons" :key="index">
                    {{p.name}}-{{p.age}}-{{p.sex}}
                </li>
            </ul>
        </div>

        <script type="text/javascript">        
            //用watch实现 
             new Vue({
                el:'#root',
                data:{
                    keyWord:'',
                    persons:[
                        {id:'001',name:'马冬梅',age:19,sex:''},
                        {id:'002',name:'周冬雨',age:20,sex:''},
                        {id:'003',name:'周杰伦',age:21,sex:''},
                        {id:'004',name:'温兆伦',age:22,sex:''}
                    ],
                    filPerons:[]
                },
                watch:{
                    keyWord:{
                        immediate:true,
                        handler(val){
                            this.filPerons = this.persons.filter((p)=>{
                                return p.name.indexOf(val) !== -1
                            })
                        }
                    }
                }
            })             
        </script>

 

posted @ 2022-04-24 14:44  杨建鑫  阅读(17)  评论(0编辑  收藏  举报