当前位置:   article > 正文

Vue列表过滤_yui.entitylist.filter

yui.entitylist.filter

问题提出:模糊搜索,搜“冬”出现“马冬梅、周冬雨”

 实现方式1:watch属性

  1. <body>
  2. <div id="div1">
  3. <input type="text" name="" v-model="word">
  4. <li v-for='(p,i) of filp' :key=i>
  5. {{p}}
  6. </li>
  7. </div>
  8. </body>
  9. <script type="text/javascript">
  10. Vue.config.produnctionTps=false
  11. new Vue({
  12. el:"#div1",
  13. data:{
  14. word:"",
  15. persons:[
  16. {id:"001",name:"马冬梅"},
  17. {id:"002",name:"周冬雨"},
  18. {id:"003",name:"周结论"},
  19. {id:"004",name:"某某论"}
  20. ],
  21. filp:[]
  22. },
  23. watch:{
  24. word:{
  25. immediate:true,
  26. handler(value){
  27. this.filp=this.persons.filter((p)=>{
  28. return p.name.indexOf(value)!==-1
  29. })
  30. }
  31. }
  32. }
  33. })
  34. </script>

实现方式2:computed属性(更简单,能用computed尽量用)

  1. <body>
  2. <div id="div1">
  3. <input type="text" name="" v-model="word">
  4. <li v-for='(p,i) of filp' :key=i>
  5. {{p}}
  6. </li>
  7. </div>
  8. </body>
  9. <script type="text/javascript">
  10. Vue.config.produnctionTps=false
  11. new Vue({
  12. el:"#div1",
  13. data:{
  14. word:"",
  15. persons:[
  16. {id:"001",name:"马冬梅"},
  17. {id:"002",name:"周冬雨"},
  18. {id:"003",name:"周结论"},
  19. {id:"004",name:"某某论"}
  20. ],
  21. },
  22. computed:{
  23. filp(){
  24. return this.persons.filter((p)=>{
  25. return p.name.indexOf(this.word)!==-1
  26. })
  27. }
  28. }
  29. })
  30. </script>

3.对返回结果过按照年龄排序

  1. computed:{
  2. filp(){
  3. const arr= this.persons.filter((p)=>{
  4. return p.name.indexOf(this.word)!==-1
  5. })
  6. if(this.isSort){
  7. arr.sort((p1,p2)=>{
  8. return p1.age-p2.age
  9. })
  10. }
  11. return arr
  12. }
  13. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/861486
推荐阅读
相关标签
  

闽ICP备14008679号