<!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>