3.列表过滤.html 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>列表过滤</title>
  8. <!-- 引入vue -->
  9. <script type="text/javascript" src="../js/vue.js"></script>
  10. </head>
  11. <body>
  12. <!-- 准备好一个容器 -->
  13. <div id="root">
  14. <h2>人员列表</h2>
  15. <input type="text" placeholder="请输入名字" v-model="keyWord"></input>
  16. <ul>
  17. <li v-for="(p,index) in filPersons" :key="index">
  18. {{p.name}}-{{p.age}}-{{p.sex}}
  19. </li>
  20. </ul>
  21. </div>
  22. </body>
  23. <script type="text/javascript">
  24. Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示
  25. // 用watch实现
  26. //#region
  27. // new Vue({
  28. // el: '#root',
  29. // data: {
  30. // keyWord: '',
  31. // persons: [
  32. // { id: '001', name: '马冬梅', age: 19, sex: '女' },
  33. // { id: '002', name: '周冬雨', age: 20, sex: '女' },
  34. // { id: '003', name: '周杰伦', age: 21, sex: '男' },
  35. // { id: '003', name: '温兆伦', age: 22, sex: '男' }
  36. // ],
  37. // filPersons: []
  38. // },
  39. // watch: {
  40. // keyWord: {
  41. // immediate: true,
  42. // handler(val) {
  43. // this.filPersons = this.persons.filter((p) => {
  44. // return p.name.indexOf(val) !== -1
  45. // })
  46. // }
  47. // }
  48. // }
  49. // })
  50. //#endregion
  51. // 用computed实现
  52. new Vue({
  53. el: '#root',
  54. data: {
  55. keyWord: '',
  56. persons: [
  57. { id: '001', name: '马冬梅', age: 19, sex: '女' },
  58. { id: '002', name: '周冬雨', age: 20, sex: '女' },
  59. { id: '003', name: '周杰伦', age: 21, sex: '男' },
  60. { id: '003', name: '温兆伦', age: 22, sex: '男' }
  61. ]
  62. },
  63. computed: {
  64. filPersons() {
  65. return this.persons.filter((p) => { //这里的return是计算属性规定的,要返回一个值
  66. return p.name.indexOf(this.keyWord) !== -1 //这里的return是filter规定的,要返回一个过滤的条件
  67. })
  68. }
  69. }
  70. })
  71. </script>
  72. </html>