首页IT科技vue中搜索功能(Vue关键字搜索功能(小案例))

vue中搜索功能(Vue关键字搜索功能(小案例))

时间2025-07-07 11:51:53分类IT科技浏览5646
导读:这里介绍两种方法:1、使用watch侦听方法 2、computed计算属性方法...

这里介绍两种方法:1            、使用watch侦听方法 2                     、computed计算属性方法

页面结果:

第一种

<body> <div id="app"> <!-- 搜索框 --> <input type="text" v-model:value="keyword"> <!-- 数据            ,遍历filPerson--> <ul> <li v-for="p in filPerson" :key="p.id">{{p.name}}-{{p.age}}</li> </ul> </div> <script> var vm=new Vue({ el:#app, data:{ keyword:, persons:[ {id:1,name:知花实央,age:20}, {id:2,name:虎杖悠仁,age:18}, {id:3,name:切嗣,age:16}, {id:4,name:卫宫切嗣,age:33} ], filPerson:[] }, //第一种写法 watch:{ keyword:{ //初始化                     ,在生成vue时      ,先执行一遍handler immediate:true,//作用:刚开始filPerson为空         ,所以要先给filPerson赋一次值 handler(val){ //person中包含val数据                     ,赋值给filPerson this.filPerson=this.persons.filter((p)=>{ return p.name.indexOf(val)!=-1 }) } } } //第二种写法 // computed:{ // filPerson(){ // return this.persons.filter((p)=>{ // return p.name.indexOf(this.keyword)!=-1 // }) // } // } }) </script> </body>

第二种

相较于watch写法         ,computed写法看上去更加简洁      ,比如:

1      、computed自身就是一种计算属性                     ,不必再去data中新建一个属性              。

2         、计算属性实时更新             ,不用像watch方法   ,新建的filPerson初始值为空,还需要手动开启设置immediate=true初始化                    ,令handler在vue实例创建后先运行一次                 ,赋予初始值                  。 <body> <div id="app"> <!-- 搜索框 --> <input type="text" v-model:value="keyword"> <!-- 数据 --> <ul> <li v-for="p in filPerson" :key="p.id">{{p.name}}-{{p.age}}</li> </ul> </div> <script> var vm=new Vue({ el:#app, data:{ keyword:, persons:[ {id:1,name:知花实央,age:20}, {id:2,name:虎杖悠仁,age:18}, {id:3,name:切嗣,age:16}, {id:4,name:卫宫切嗣,age:33} ], // filPerson:[] }, //第一种写法 // watch:{ // keyword:{ // //初始化,在生成vue时                ,先执行一遍handler // immediate:true,//作用:刚开始filPerson为空                     ,所以要先给filPerson赋一次值 // handler(val){ // //过滤掉不包含keyword数据   ,再赋值给filPerson // this.filPerson=this.persons.filter((p)=>{ // return p.name.indexOf(val)!=-1 // }) // } // } // } //第二种写法 computed:{ filPerson(){ return this.persons.filter((p)=>{ return p.name.indexOf(this.keyword)!=-1 }) } } }) </script> </body>

其实watch方法和computed方法各有优劣            ,computed方法自己就是一种计算属性                     ,很多时候直接给自己赋值      ,省去很多代码;但是watch方法能够做到跟多的细节操作         ,甚至computed能实现的                     ,它都能实现         ,还能实现更多computed实现不了的细节       。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
dns轮询 负载均衡(什么是DNS负载均衡,DNS负载均衡的原理和作用) 如何通过SEO优化排名(SEO优化排名技巧)