1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <!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>
- <!-- 引入vue -->
- <script type="text/javascript" src="../js/vue.js"></script>
- </head>
- <body>
- <!-- 准备好一个容器 -->
- <div id="root">
- <h2>人员列表</h2>
- <input type="text" placeholder="请输入名字" v-model="keyWord"></input>
- <ul>
- <li v-for="(p,index) in filPersons" :key="index">
- {{p.name}}-{{p.age}}-{{p.sex}}
- </li>
- </ul>
- </div>
- </body>
- <script type="text/javascript">
- Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示
- // 用watch实现
- //#region
- // new Vue({
- // el: '#root',
- // data: {
- // keyWord: '',
- // persons: [
- // { id: '001', name: '马冬梅', age: 19, sex: '女' },
- // { id: '002', name: '周冬雨', age: 20, sex: '女' },
- // { id: '003', name: '周杰伦', age: 21, sex: '男' },
- // { id: '003', name: '温兆伦', age: 22, sex: '男' }
- // ],
- // filPersons: []
- // },
- // watch: {
- // keyWord: {
- // immediate: true,
- // handler(val) {
- // this.filPersons = this.persons.filter((p) => {
- // return p.name.indexOf(val) !== -1
- // })
- // }
- // }
- // }
- // })
- //#endregion
- // 用computed实现
- new Vue({
- el: '#root',
- data: {
- keyWord: '',
- persons: [
- { id: '001', name: '马冬梅', age: 19, sex: '女' },
- { id: '002', name: '周冬雨', age: 20, sex: '女' },
- { id: '003', name: '周杰伦', age: 21, sex: '男' },
- { id: '003', name: '温兆伦', age: 22, sex: '男' }
- ]
- },
- computed: {
- filPersons() {
- return this.persons.filter((p) => { //这里的return是计算属性规定的,要返回一个值
- return p.name.indexOf(this.keyWord) !== -1 //这里的return是filter规定的,要返回一个过滤的条件
- })
- }
- }
- })
- </script>
- </html>
|