代码实例(watch)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>列表过滤</title> <script src="/js/vue.js"></script> </head> <body> <div id="root"> <input type="text" placeholder="请输入信息" v-model="KeyWord"> <ul v-for="(p,index) in fillist"> <li>{{p.name}}-{{p.age}}-{{p.gender}}</li> </ul> </div> </body> <script type="text/javascript"> Vue.config.productionTip = false
new Vue({ el:'#root', data() { return { KeyWord:'', lists:[ {name:'Louis',age:'18',gender:'male'}, {name:'Louis1',age:'182',gender:'male'}, {name:'Louis2',age:'182',gender:'female'} ], fillist:[] } }, watch:{ KeyWord:{ immediate:true, handler(val){ this.fillist =this.lists.filter((p)=>{ return p.name.indexOf(val) !== -1 }) } } } }) </script> </html>
|
代码实例(computed)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>列表过滤</title> <script src="/js/vue.js"></script> </head> <body> <div id="root"> <input type="text" placeholder="请输入信息" v-model="KeyWord"> <ul v-for="(p,index) in fillist"> <li>{{p.name}}-{{p.age}}-{{p.gender}}</li> </ul> </div> </body> <script type="text/javascript"> Vue.config.productionTip = false
new Vue({ el:'#root', data() { return { KeyWord:'', lists:[ {name:'Louis',age:'18',gender:'male'}, {name:'Louis1',age:'182',gender:'male'}, {name:'Louis2',age:'182',gender:'female'}] } }, computed:{ fillist(){ return this.lists.filter((p)=>{ return p.name.indexOf(this.KeyWord) !== -1 }) } } }) </script> </html>
|
分析Vue的片段(分两种方法)
第一种:watch(监视方法)
1.检测输入的关键字是否发生改变(在这里需要提前设定KeyWord(进行双向绑定))
2.通过数组过滤的filter方法对设定数据p进行过滤
3.最后返回值通过indexOf判断是否包含输入的值(如果不包含会返回-1)
第二种:computed(计算属性)
计算属性大致方法与监视属性一致(详细见代码)