13.列表过滤.html 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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" placeholder="请输入关键字" v-model="keyWord" >
  11. <ul v-for="(item,index) in newList" :key="index">
  12. <li>{{index+1}}--我叫{{item.name}}--今年{{item.age}}--是个{{item.sex}}孩</li>
  13. </ul>
  14. </div>
  15. <script src="./vue.js"></script>
  16. <script>
  17. var vm = new Vue({
  18. data: {
  19. keyWord:"",
  20. arr: [
  21. {
  22. name: "Lucy",
  23. age: 11,
  24. sex: "女",
  25. },
  26. {
  27. name: "LiLi",
  28. age: 31,
  29. sex: "男",
  30. },
  31. {
  32. name: "八戒",
  33. age: 21,
  34. sex: "男",
  35. },
  36. {
  37. name: "八卦",
  38. age: 23,
  39. sex: "男",
  40. },
  41. {
  42. name: "孙悟空",
  43. age: 27,
  44. sex: "男",
  45. },
  46. {
  47. name: "唐僧",
  48. age: 33,
  49. sex: "女",
  50. },
  51. ],
  52. newList:[]
  53. },
  54. watch:{
  55. keyWord:{
  56. immediate: true,
  57. deep: true,
  58. handler(newValue,oldValue) {
  59. console.log(newValue,'新')
  60. console.log(oldValue,'旧')
  61. this.newList = this.arr.filter((ele) => {
  62. return ele.sex.indexOf(newValue)!= -1
  63. })
  64. }
  65. }
  66. }
  67. }).$mount("#app");
  68. </script>
  69. </body>
  70. </html>