<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script type="text/javascript" src="../js/vue.js"></script> <title>3.列表过滤</title> </head> <body> <div id="root"> <h2>人员列表</h2> <input type="text" placeholder="清输入名字" v-model="keyword" > <ul> <li v-for="(p,index) in filPersons" :key="index"> {{p.name}}--{{p.age}}--{{p.sex}} </li> </ul> </div> <script> //用watch实现 // const vm=new Vue({ // el:"#root", // data:{ // keyword:"", // persons:[ // {id:"001",name:"马冬梅",age:18,sex:"女"}, // {id: "002", name: "周冬雨", age: 19,sex:"女"}, // {id:"003",name:"周杰伦",age:20,sex:"男"}, // {id:"004",name:"温兆伦",age:21,sex:"男"}, // ], // filPersons:[] // }, // watch:{ // keyword:{ // immediate:true, // handler(val){ // this.filPersons = this.persons.filter((p) => { // return p.name.indexOf(val) !== -1; // }) // } // } // } // }) //用computed实现 const vm = new Vue({ el: "#root", data: { keyword: "", persons: [ { id: "001", name: "马冬梅", age: 18, sex: "女" }, { id: "002", name: "周冬雨", age: 19, sex: "女" }, { id: "003", name: "周杰伦", age: 20, sex: "男" }, { id: "004", name: "温兆伦", age: 21, sex: "男" }, ], }, computed:{ filPersons(){ return this.persons.filter((p) => { return p.name.indexOf(this.keyword) !== -1; }) } } }) </script> </body> </html>
标签:vue,name,keyword,age,sex,persons,过滤,列表,id From: https://www.cnblogs.com/xiaobaizitaibai/p/16846766.html