2.列表过滤.html 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <div id="app">
  10. <input type="text" v-model="keyWords">
  11. <ul>
  12. <li v-for="(item,index) in newList" :key="index">
  13. {{item.name}}--{{item.age}}--{{item.sex}}
  14. </li>
  15. </ul>
  16. </div>
  17. <script src="./vue.js"></script>
  18. <script>
  19. var app = new Vue({
  20. data:{
  21. keyWords:"",
  22. person:[
  23. {
  24. name:"LiLi",
  25. age: 19,
  26. sex: '女'
  27. },
  28. {
  29. name:"Ming",
  30. age: 29,
  31. sex: '男'
  32. },
  33. {
  34. name:"Lucy",
  35. age: 99,
  36. sex: '女'
  37. },
  38. {
  39. name:"马冬梅",
  40. age: 98,
  41. sex: '女'
  42. },
  43. ],
  44. newList:[]
  45. },
  46. // 监听模式
  47. watch: {
  48. keyWords:{
  49. immediate: true,
  50. deep: true,
  51. handler(val) {
  52. this.newList = this.person.filter((item) =>{
  53. return item.name.indexOf(val) !== -1;
  54. })
  55. }
  56. }
  57. }
  58. }).$mount("#app")
  59. </script>
  60. </body>
  61. </html>