<html>
<head>
<title>列表过滤</title>
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<!--
列表过滤两种实现方式:
1、watch监听实现;
2、computed计算属性实现
-->
<div id="root">
<!-- 1、遍历数组 -->
<h2>人员列表</h2>
<ul>
<input type="text" placeholder="请输入名字检索" v-model="keyWorld">
<!-- <li v-for="p in persons" :key="p.id"> -->
<li v-for="(p,index) in filPersons" :key="index">
{{p.name}}-{{p.age}}
</li>
</ul>
</div>
<script type="text/javascript">
Vue.config.productionTip = false
// 1、用watch实现
// const v =new Vue({
// el:'#root',
// data:{
// keyWorld:'',
// persons:[
// {id:'001',name:'马冬梅',age:'12',sex:'女'},
// {id:'002',name:'东二哥',age:'24',sex:'男'},
// {id:'003',name:'二傻子',age:'33',sex:'女'},
// {id:'003',name:'樱子',age:'33',sex:'男'}
// ],
// filPersons:[]
// },
// methods: {
// add(){
// const p = {id:'004',name:'老刘',age:50}
// this.persons.unshift(p) //添加老刘到第一行
// }
// },
// watch:{
// keyWorld:{
// immediate:true,
// handler(Val){
// console.log('KeyWorld被修改 '+Val)
// this.filPersons = this.persons.filter((p)=>{
// return p.name.indexOf(Val) != -1
// })
// }
// }
// }
// })
// 2、用computed实现
const vm = new Vue({
el:'#root',
data:{
keyWorld:'',
persons:[
{id:'001',name:'马冬梅',age:'12',sex:'女'},
{id:'002',name:'东二哥',age:'24',sex:'男'},
{id:'003',name:'二傻子',age:'33',sex:'女'},
{id:'003',name:'樱子',age:'33',sex:'男'}
],
},
computed:{
filPersons(){
return this.persons.filter((p)=>{
return p.name.indexOf(this.keyWorld) != -1
}
)
}
}
})
</script>
</body>
</html>
天将幕,雪乱舞,半梅花半飘柳絮......
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?